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

オブジェクトをサーバー・ファイルに取り出す場合

Content UDF を使えば、形式変換をせずに、画像、音声、ビデオのオブジェクトをサーバー・ファイルに取り出すことができます。 さらに、Content UDF によって、画像を形式変換してサーバー・ファイルに取り出すこともできます。

画像、音声、ビデオのオブジェクトを変換せずにサーバーのファイルへ取り出す場合には、オブジェクトのハンドル、ターゲット・ファイルの名前、重ね書き標識を指定します。 重ね書き標識は、ターゲット・ファイルがサーバーにすでにある場合、取り出したデータでそのファイルを重ね書きするかどうかをエクステンダーに知らせます。

ターゲット・ファイルが存在しなければ、エクステンダーは、ターゲット・ファイルをサーバーに作成します。

重ね書き標識の値として 1 を指定すると、エクステンダーは、取り出したデータでターゲット・ファイルを重ね書きします。 重ね書き標識の値として 0 を指定すると、エクステンダーは、ターゲット・ファイルを重ね書きしないので、データは取り出されません。

取り出すオブジェクトが BLOB としてデータベース表に保管されている場合には、重ね書き標識は無視されます。 ターゲット・ファイルは、重ね書き標識の指定が何であれ、作成または重ね書きされます。

オブジェクトをサーバー・ファイルに取り出すと、そのサーバー・ファイルの名前が戻されます。 たとえば、C アプリケーション・プログラムの次のステートメントでは、ビデオがサーバーのファイルに取り出されます。 サーバーのファイル名は、ホスト変数 hvVid_fname に保管されます。

EXEC SQL BEGIN DECLARE SECTION;
struct{
       short len;
       char data[250]; 
      }hvVid_fname[;
EXEC SQL END DECLARE SECTION;
 
EXEC SQL SELECT CONTENT(
        VIDEO,                               /* video handle */
        '/employee/videos/ajones.mpg',       /* server file */
        1)                                   /* overwrite target file */
     INTO :hvVid_fname;
     FROM EMPLOYEE
     WHERE NAME = 'Anita Jones';

オブジェクトが BLOB としてデータベース表に保管されている場合、そのオブジェクトを変換せずにサーバー・ファイルに取り出すには、Content UDF を使用するのが適切です。 オブジェクトがサーバー・ファイルに保管されている場合には、ソース・ファイルの内容をターゲット・ファイルにコピーする方が効率的かもしれません。

画像を形式変換してサーバーのファイルに取り出す場合には、画像ハンドル、ターゲット・ファイルの名前、ターゲットの重ね書き標識、ターゲット形式を指定します。 どの変換が可能かについては、表 4 を参照してください。 ターゲットの形式には、ヌル値か空ストリング、またはストリング ASIS を指定することができます。 この場合には、取り出された画像の形式はソースと同じになります。

たとえば、C アプリケーション・プログラムの次のステートメントでは、画像がサーバーのファイルに取り出されます。 ソース・イメージはビットマップ形式で、データベース表に BLOB として保管されています。 取り出された画像は GIF 形式に変換されます。 サーバー・ファイルのファイル名は、ホスト変数 hvImg_fname に保管されます。

EXEC SQL BEGIN DECLARE SECTION;
  struct{
        short len;
        char [400]; 
        }hvImg_fname[;
EXEC SQL END DECLARE SECTION;
 
EXEC SQL SELECT CONTENT(
        PICTURE,                             /* image handle */
        '/employee/images/ajones.gif',       /* target file */
        1,                                   /* overwrite target file */
        'GIF')                               /* target format */
     INTO :hvImg_fname
     FROM EMPLOYEE
     WHERE NAME = 'Anita Jones';

サーバー・ファイルがアクセス可能でなければなりません: オブジェクトをサーバー・ファイルに取り出す場合には、そのターゲット・ファイルの完全修飾名を指定する必要があります。または、DB2IMAGEEXPORT、DB2AUDIOEXPORT、および DB2VIDEOEXPORT 環境変数を適切に設定することによって、不完全なファイル名の指定を解決できなければなりません。


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