通过使用主变量或文件引用变量,将图象、 音频或视频对象的内容从客户机缓冲区或客户机文件传送至服务器。
若对象在客户机文件中,则使用文件引用变量来传送它的内容, 以便将它存储在服务器中。例如,C 应用程序中的下列语句定义 名为 Audio_file 的文件引用变量, 并使用它来传送内容位于客户机文件中的音频剪辑。该音频剪辑存储在服务器上的数据库表中。注意, 文件引用变量的 file_option 字段设置为 SQL_FILE_READ,表示输入。另外还需注意, 文件引用变量被用作 DB2Audio UDF 的内容自变量。
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB_FILE Audio_file; EXEC SQL END DECLARE SECTION; strcpy (Audio_file.name, "/employee/sounds/ajones.wav"); Audio_file.name_length= strlen(Audio_file.name); Audio_file.file_options= SQL_FILE_READ; EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anita Jones', DB2AUDIO( CURRENT SERVER, :Audio_file, /* file reference variable */ 'WAVE', CAST(NULL as LONG VARCHAR), 'Anita''s voice') );
若对象在客户机缓冲区中,则使用定义为 BLOB 或 BLOB_LOCATOR 的主变量来传送其内容,以便存储在服务器中。在下列 C 应用程序语句中, 使用名为 Video_loc 的主变量来传送视频剪辑的内容,以便存储在服务器中。该视频剪辑以 BLOB 的形式存储在数据库表中。注意,该主变量被用作 DB2Video UDF 的内容自变量。
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB_LOCATOR Video_loc; EXEC SQL END DECLARE SECTION; EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anita Jones', DB2VIDEO( CURRENT SERVER, :Video_loc, /* host variable */ 'MPEG1', '', 'Anita''s video') );
确保有足够的 UDF 内存:当存储其内容在客户机缓冲区中的对象时, 需要确保将“数据库管理程序配置”中的 UDF_MEM_SZ 参数 设置为 4 MB 或更大。可通过使用 DB2 命令 UPDATE DATABASE MANAGER CONFIGURATION 来更新 UDF_MEM_SZ 参数。
有关 UPDATE DATABASE MANAGER 命令的更多信息, 参见DB2 Command Reference。