IBM Books

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

DB2Image


图象 音频 视频
X    

将图象的内容存储在数据库表中。图象源可以在客户机 缓冲区、客户机文件或服务器文件中。可将图象以 BLOB 形式存储在数据库表中, 或存储在服务器文件中(由数据库表引用)。图象源可以处于受支持的格式,在这种情况下,DB2Image Extender 标识其存储属性, 也可处于不受支持的格式,在这种情况下,必须在 UDF 中指定属性。

包含文件

dmbimage.h

语法

从缓冲区或客户机 文件存储内容

>>-DB2Image--(--dbname--,--content--,--source_format--,--------->
 
>----target_file--,--comment--)--------------------------------><
 

语法

从服务器文件存储内容

>>-DB2Image--(--dbname--,--source_file--,--source_format--,----->
 
>----stortype--,--comment--)-----------------------------------><
 

语法

从缓冲区或客户机文件存储具有用户提供的属性的内容

>>-DB2Image--(--dbname--,--content--,--target_file--,----------->
 
>----comment--,--attrs--,--thumbnail--)------------------------><
 

语法

从服务器文件存储具有用户提供的属性的内容

>>-DB2Image--(--dbname--,--source_file--,--stortype--,--comment--,-->
 
>---attrs--,--thumbnail--)-------------------------------------><
 

语法

从缓冲区或客户机文件更新内容, 并进行格式转换

>>-DB2Image--(--dbname--,--content--,--source_format--,--------->
 
>----target_format--,--target_file--,--comment--)--------------><
 

语法

从服务器文件存储内容,并进行格式转换

>>-DB2Image--(--dbname--,--source_file--,--source_format--,----->
 
>----target_format--,--target_file--,--comment--)--------------><
 

语法

从缓冲区或客户机文件存储内容, 并进行格式转换和其他更改

>>-DB2Image--(--dbname--,--content--,--source_format--,--------->
 
>----target_format--,--conversion_options--,--target_file--,---->
 
>----comment--)------------------------------------------------><
 

语法

从服务器文件存储内容,并进行格式转换和其他更改

>>-DB2Image--(--dbname--,--source_file--,--source_format--,----->
 
>----target_format--,--conversion_options--,--target_file--,---->
 
>----comment--)------------------------------------------------><
 

参数(数据类型)

dbname (VARCHAR(18))
当前连接的数据库的名称,由 CURRENT SERVER 专用寄存器指示。

content (BLOB(2G) AS LOCATOR)
包含图象的内容的主变量。主变量的类型可以是 BLOB、BLOB_FILE 或 BLOB_LOCATOR。DB2 将内容的数据类型转换为 BLOB_LOCATOR, 并将 LOB 定位器传送至 DB2Image UDF。

source_format (VARCHAR(8))
源图象的格式。可指定空值、空字符串或字符串 ASIS; 在任何这三种情况下,Image Extender 都将试图自动确定源格式。将把图象存储成与它的源的格式相同。参见表 4以获取受支持的图象格式。

target_format (VARCHAR(8))
存储之后图象的格式。将适当地转换源图象的格式。

target_file (LONG VARCHAR)
目标服务器文件的名称(对于存储至服务器文件), 或是空值或空字符串(对于以 BLOB 形式存储到数据库表中)。目标文件名可以是全限定名。若未限定名称, 则使用服务器上的 DB2IMAGESTORE 和 DB2MMSTORE 环境变量来找出该文件。若存储图象时进行了格式转换, 则需要在 DB2IMAGEPATH 和 DB2MMPATH 环境变量中指定目标文件的路径。

source_file (LONG VARCHAR)
源服务器文件的名称。源文件名可以是全限定名或未限定名;但不能是空值或空字符串。若未限定名称, 则使用服务器上的 DB2IMAGEPATH 和 DB2MMPATH 环境变量来找出该文件。

stortype (INTEGER)
指示将在何处存储图象的值。常量 MMDB_STORAGE_TYPE_INTERNAL(值=1) 指示将把图象以 BLOB 形式存储在数据库中; 常量 MMDB_STORAGE_TYPE_EXTERNAL(值=0) 指示将把图象内容存储在(数据库中指向的)服务器文件中。

comment (LONG VARCHAR)
要与图象存储在一起的注解。

attrs (LONG VARCHAR FOR BIT DATA)
图象的属性。

thumbnail (LONG VARCHAR FOR BIT DATA)
图象的缩略图。

conversion_options (VARCHAR(100))
指定存储图象时,要对其应用的更改,如旋转和压缩。参见表 5 以获取受支持的转换选项。

返回值(数据类型)

图象的句柄 (DB2IMAGE)

将包括 Anita Jones 的图象的记录插入到 Employee 表中。图象源在客户机缓冲区中。将图象以 BLOB 形式存储在表中:

EXEC SQL BEGIN DECLARE SECTION
     SQL TYPE IS BLOB (2M) hvImg
   EXEC SQL END DECLARE SECTION;
 
EXEC SQL INSERT INTO EMPLOYEE VALUES(
      '128557',
      'Anita Jones',
      DB2IMAGE(
         CURRENT SERVER,
         :hvImg,
         'ASIS',
         CAST(NULL as LONG VARCHAR),
         
         'Anita''s picture'));

将包括 Robert Smith 的图象的记录插入到 Employee 表中。图象源在服务器文件中。Employee 表记录将指向该文件。存储时,将图象的格式由 BMP 转换为 GIF。 并将图象修剪成宽度为 110 象素,高度为 150 象素, 并使用 LZW 类型压缩来压缩图象:

EXEC SQL INSERT INTO EMPLOYEE VALUES(
      '384779',
      'Robert Smith',
      DB2IMAGE(
         CURRENT SERVER,
         '/employee/pictures/rsmith.bmp',
          'BMP',
          'GIF',
         '-x 110 -y 150 -c 14',
         '',
         'Robert"s picture'));

将包括 Robert Smith 的图象的记录插入到 Employee 表中。服务器文件中的源图象具有用户定义的格式, 高度为 640 象素,宽度为 480 象素。以 BLOB 形式存储图象:

EXEC SQL BEGIN DECLARE SECTION;
     long hvStorageType;
         struct  {
        short len;
       char data[400];
}hvImgattrs;
   EXEC SQL END DECLARE SECTION;
 
DB2IMAGEATTRS    *pimgattr;
 
hvStorageType = MMDB_STORAGE_TYPE_INTERNAL;
 
pimgattr = (DB2IMAGEATTRS *) hvImgattrs.data;
strcpy(pimgattrt>cFormat,"FormatI");
pimgattr>width=640;
pimgattr>height=480;
hvImgattrs.len=sizeof(DB2IMAGEATTRS);
 
EXEC SQL INSERT INTO EMPLOYEE VALUES(
      '128557',
      'Anita Jones',
      DB2IMAGE(
         CURRENT SERVER,
          '/Employee/images/ajones.bmp',
         :hvStorageType,
          'Anita''s picture',
          :hvImgattrs,
          CAST(NULL as LONG VARCHAR))
       );


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