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

オブジェクトをクライアントに取り出す場合

Content UDF を使えば、形式変換をせずに画像、音声、ビデオのオブジェクトをクライアント・バッファーかクライアント・ファイルに取り出すことができます。 さらに取り出しの際に、その画像の形式をイメージ・エクステンダーによって変換することもできます。

形式変換せずにオブジェクトをクライアントに取り出す場合

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 以上に設定することが必要です。

UDF_MEM_SZ パラメーターは、DB2 コマンドの UPDATE DATABASE MANAGER CONFIGURATION を使用すれば更新できます。

UPDATE DATABASE MANAGER コマンドの詳細については、DB2 コマンド解説書 を参照してください。

変換して画像をクライアントに取り出す場合

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';


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