表示や再生が可能なオブジェクトは、データベース表に BLOB として保管されているオブジェクト、またはその内容がファイルに保管され、データベース表からポイント指定されているオブジェクトです。 オブジェクトが BLOB として保管されている場合には、MMDB_PLAY_HANDLE を、 オブジェクトの内容がファイルに保管されている場合には、MMDB_PLAY_FILE をそれぞれ指定します。 MMDB_PLAY_HANDLE と MMDB_PLAY_FILE は、エクステンダーによって定義された定数です。
たとえば、C アプリケーション・プログラムの次のステートメントでは、内容がファイルにあるビデオを再生します。
rc = DBvPlay( "explore %s", MMDB_PLAY_FILE, /* content in file */ "/employee/videos/ajones.mpg", MMDB_PLAY_NO_WAIT );
一般に、表示や再生のプログラムに対する入力は、ファイルから行われます。 MMDB_PLAY_FILE を指定すると、エクステンダーは環境変数の値を使用して、ファイルの相対ファイル名およびパスを解決します。 それから、エクステンダーはブラウズ・プログラムを開始して、それにファイル名を渡します。 MMDB_PLAY_HANDLE を指定すると、エクステンダーはハンドルからファイル名を抽出します (ファイル名がヌル値でない場合)。 ハンドルのファイル名が空である場合、オブジェクトは BLOB として保管されます。 エクステンダーは、一時ファイルをクライアントに作成し、オブジェクトの内容をデータベース表からそのクライアント・ファイルへコピーします。 次に、エクステンダーはプログラムを開始し、その内容をもつファイル (または一時ファイル) の名前をそれに渡します。
たとえば、C アプリケーション・プログラムの次のステートメントでは、BLOB として保管されている画像のハンドルを入手し、そのハンドルを使って画像を表示します。
EXEC SQL BEGIN DECLARE SECTION; char hvImg_hdl[251]; EXEC SQL END DECLARE SECTION; rc = DBiBrowse( "ib %s", MMDB_PLAY_HANDLE, /* content is BLOB */ hvImg_hdl, MMDB_PLAY_NO_WAIT );
内容はアクセス可能でなければなりません: オブジェクトの内容は、表示や再生のプログラムからアクセス可能でなければなりません。 内容がサーバー・ファイルにあるが、そのプログラムではそれがクライアントになければならない場合には、そのファイルをクライアント・ファイルへコピーするか、Content UDF を使用します。 その内容が BLOB として保管されている場合は、エクステンダーがそれをクライアントへ自動的に取り出します。