IBM Books

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

指定数据库或文件存储器

可以 BLOB 形式将图象、音频或视频对象存储在数据库中, 或存储在服务器文件中。若将对象存储在服务器文件中,则数据库指向该文件。

若从客户机缓冲区或客户机文件存储对象,则指示 BLOB 或服务器文件存储器作为在 target_file 参数中指定的内容的结果。若指定文件名,它指示要将对象存储在服务器文件中。若指定空值或空字符串, 则它指示要将对象以 BLOB 形式存储在数据库表中。target_file 参数的数据类型是 LONG VARCHAR。若指定空值, 切记将其强制转换为 LONG VARCHAR 数据类型。

例如,C 应用程序中的下列语句将包括图象的行存储到数据库表中。图象源在客户机缓冲区中。图象存储在服务器文件中。数据库表指向服务器文件:

EXEC SQL BEGIN DECLARE SECTION;
  SQL TYPE IS BLOB_LOCATOR Img_buf
   EXEC SQL END DECLARE SECTION;
 
EXEC SQL INSERT INTO EMPLOYEE VALUES(
      '128557',
      'Anita Jones',
      DB2IMAGE(
         CURRENT SERVER,
                   :Img_buf,
                   'ASIS',
          '/Employee/images/ajones.bmp',    /* store image in server file */
          'Anita''s picture')
       );

若存储位于服务器文件中的对象,则指定常量 MMDB_STORAGE_TYPE_INTERNAL

,以便将该对象以 BLOB 的形式存储到数据库表中。若要存储对象,且要使其内容保留在服务器文件中, 则指定常量 MMDB_STORAGE_TYPE_EXTERNAL。MMDB_STORAGE_TYPE_INTERNAL 的值为整数 1。MMDB_STORAGE_TYPE_EXTERNAL 的值为整数 0。

例如,在以下 C 应用程序中,将音频剪辑存储在服务器文件中。源音频内容已经在服务器文件中。存储操作将文件名放在数据库中, 从而可通过 SQL 语句来存取该文件。

EXEC SQL BEGIN DECLARE SECTION;
     long hvStorageType;
   EXEC SQL END DECLARE SECTION;
 
hvStorageType=MMDB_STORAGE_TYPE_EXTERNAL;
 
EXEC SQL INSERT INTO EMPLOYEE VALUES(
      '128557',
      'Anita Jones',
               DB2AUDIO(
         CURRENT SERVER,
          '/Employee/Sounds/ajones.wav',
                 'WAVE',
          :hvStorageType,             /* store audio in server file */
          'Anita''s voice')
       );


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