可使用 Content UDF 来将图象、音频或视频对象检索至客户机缓冲区或客户机文件, 且不进行格式转换。另外,还可以选择让 Image Extender 在检索图象时转换其格式。
使用 LOB 定位器来将图象、音频或视频对象检索至客户机缓冲区, 或检索 LOB。使用文件引用变量来将图象、音频或视频对象检索至客户机 文件。
当对象的内容以 BLOB 形式存储在数据库表中时, 使用主变量将图象、音频或视频对象检索至客户机缓冲区, 或使用文件引用变量将其检索至客户机文件是合适的。若内容位于服务器文件中,则将内容从客户机文件复制至客户机文件可能更有效率。
指定对象的句柄。您还可选择指定从字节 1 开始的位移 (检索的起始位置),以及要检索的字节数。
C 应用程序中的下列语句使用名为 audio_loc 的 LOB 定位器来将音频剪辑检索到客户机缓冲区中。
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB_LOCATOR audio_loc; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT CONTENT( SOUND) /* audio handle */ INTO :audio_loc FROM EMPLOYEE WHERE NAME = 'Anita Jones';
确保有足够的 UDF 内存:当将对象检索至客户机缓冲区时,需要确保将“数据库管理程序配置” 中的 UDF_MEM_SZ 参数 设置为 4 MB 或更大。可用 DB2 命令 UPDATE DATABASE MANAGER CONFIGURATION 来更新 UDF_MEM_SZ 参数。 有关 UPDATE DATABASE MANAGER 命令的信息, 参见出版物 DB2 Command Reference。
使用 LOB 定位器来将存储的图象检索至客户机缓冲区,并进行格式转换, 或使用 LOB 定位器来检索 LOB。使用文件引用变量来将存储的图象检索至客户机文件, 并进行格式转换。
当图象的内容以 BLOB 形式存储在数据库表中时, 使用主变量将图象检索至客户机缓冲区, 或使用文件引用变量将其检索至客户机文件是合适的。若内容位于服务器文件中,则将内容从客户机文件复制至客户机文件可能更有效率。
若检索图象时进行格式转换,则需要指定其目标格式,即转换后的格式。表 4标识了允许的格式转换。还可指定转换选项, 它们标识要应用于检索到的图象的其他更改(如旋转或按比例缩放)。表 5列示了可指定的转换选项。
例如,C 应用程序中的下列语句将图象检索至客户机文件。源图象处于位图格式, 它以 BLOB 形式存储在数据库表中。将检索到的图象转换为 GIF, 并按比例放大为其原始大小的 3 倍。
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB_FILE Img_file; EXEC SQL END DECLARE SECTION; strcpy (Img_file.name, "/Employee/images/ajones.gif"); Img_file.name_length= strlen(Img_file.name); Img_file.file_options= SQL_FILE_CREATE; EXEC SQL SELECT CONTENT( PICTURE, /* image handle */ 'GIF', /* target format */ '-s 3.0') /* conversion options */ INTO :Img_file, FROM EMPLOYEE WHERE NAME = 'Anita Jones';