IBM Books

Image Extender、Audio Extender 和 Video Extender 管理和程序设计


使用 Extender UDF 和 API

DB2 Extender 提供了用户定义函数来存储、存取和处理数据库中的图象、音频和视频数据。通过请求 SQL 内部函数的同样方式, 在应用程序中使用 SQL 语句来编码对这些 UDF 的请求。与内部函数类似,UDF 是在数据库服务器中运行的。

C 应用程序中的下列 SQL 语句请求一个名为 DB2Image 的 Image Extender UDF 以便将图象存储在数据库表中;源图象的内容位于服务器文件中:

EXEC SQL BEGIN DECLARE SECTION;
     long hvStorageType;
   EXEC SQL END DECLARE SECTION;
 
hvStorageType=MMDB_STORAGE_TYPE_INTERNAL
 
EXEC SQL INSERT INTO EMPLOYEE VALUES(
        '128557',                         /*id*/
        'Anita Jones',                    /*name*/
        DB2IMAGE(                         /*Image Extender UDF*/
           CURRENT SERVER,                /*database */
           '/Employee/images/ajones.bmp', /*image content*/
           'ASIS',                         /*keep the image format*/
           :hvStorageType,                /*store image in DB as BLOB*
          'Anita''s picture')              /*comment*/
       );

您使用 Extender 应用程序设计接口来显示图象并播放音频或视频对象。通过使用 C 语言中的客户机函数调用来编码这些 API。这些函数在数据库客户机工作站中运行。

下列 C 语句包括名为 DBiBrowse 的 API。此 API 检索图象句柄的数据并启动浏览器来显示图象。

EXEC SQL BEGIN DECLARE SECTION;
char hvImg_hdl [251];
EXEC SQL END DECLARE SECTION
 
EXEC SQL SELECT PICTURE INTO :hvImg_hdl
      WHERE NAME='Robert Smith';
 
rc=DBiBrowse(
             "ib %s",                /*image browser*/
             MMDB_PLAY_HANDLE,       /*use image handle*/
             hvImg_hdl,              /*image handle*/
             MMDB_PLAY_NO_WAIT);     /*run browser independently*/
 

UDF 必须在该实例的用户 ID 下运行: DB2 Extender UDF 必须在与 DB2 Extender 实例相同的用户 ID 下运行。另外,若要创建 DB2 Extender 实例或使用现有的 DB2 Extender 实例, UDF 必须在与 DB2 实例相同的用户 ID 下运行。

必须正确地配置 DB2:必须正确地配置 DB2 才能确保 DB2 Extender 正确操作, 特别是确保 DB2 Extender UDF 正确操作。尤其是,必须正确地设置 APP_CTL_HEAP_SZ 数据库配置参数。


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]