イメージ、オーディオ、およびビデオ・エクステンダー 管理およびプログラミングの手引き

データベースまたはファイルの記憶域の指定

画像、音声、ビデオのオブジェクトは、BLOB としてデータベース表に保管することも、サーバー・ファイルに保管することもできます。

オブジェクトをサーバー・ファイルに保管すると、そのファイルがデータベースによってポイントされます。

オブジェクトをクライアント・バッファーまたはクライアント・ファイルから保管する場合には、target_file パラメーターへの指定内容によって、BLOB かサーバー・ファイル記憶域のどちらかを表します。 ファイル名を指定すると、オブジェクトをサーバー・ファイルに保管することを表します。 ファイルにヌル値または空ストリングを指定すると、オブジェクトを 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')
       );


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]