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

例 1: ビデオをその特性によって検索する

広告代理店のある顧客マネージャーは、1997 年に IBM のために作成したビデオ広告のうち 30 秒以内のものを探しています。

以下の図 は、これらのビデオにアクセスするための照会です。 この照会には、FilenameDuration という名前のビデオ・エクステンダー UDF が指定されていることに注意してください。

図 2. ビデオをアクセスする照会

SELECT FILENAME(ADS_VIDEO)
FROM ADS
WHERE CLIENT='IBM' AND
SHIP_DATE>='01/01/1997' AND
DURATION(ADS_VIDEO) <=30

この照会によって、該当するビデオのファイル名が戻されます。 そうすると、顧客マネージャーは好きなビデオ・プレーヤーを開始して、それぞれのビデオ・ファイルの内容を再生することができます。

上の図 は、顧客マネージャーが対話的に発行できる照会の例です。 通常、顧客マネージャーは、アプリケーション・プログラムを使ってビデオを検出し、再生します。 次の図 は、C でコーディングされたそのようなアプリケーションの主要要素を示しています。 このアプリケーションでは、hvVid_fname という名前の DB2 ホスト変数にビデオ・ファイルの名前が取り出されます。 さらに、このアプリケーションでは、DBvPlay という名前の再生 API を使ってビデオが再生されます。

図 3. ビデオのアクセスと再生を行うアプリケーション

#include <dmbvideo.h>
 
int count = 0;
 
EXEC SQL BEGIN DECLARE SECTION;
char hvClient[30];                      /*client name*/
char hvCampaign[30];                    /*campaign name*/
char hvSdate[8];                        /*ship date*/
char hvVid_fname [251]                  /*video file name*/
 
 
EXEC SQL END DECLARE SECTION;
EXEC SQL DECLARE c1 CURSOR FOR
     SELECT CLIENT, CAMPAIGN, SHIP_DATE, FILENAME(ADS_VIDEO)
       FROM ADS
       WHERE CLIENT='IBM' AND
         SHIP_DATE>='01/01/1997' AND
         DURATION(ADS_VIDEO)<=30
FOR FETCH ONLY;
EXEC SQL OPEN c1;
for (;;){
        EXEC SQL FETCH c1 INTO :hvClient, :hvCampaign,
                         :hvSdate, :hvVid_fname;
    if (SQLCODE != 0)
              break;
    printf("\nRecord %d:\n", ++count);
    printf("Client = '%s'\n", hvClient);
    printf("Campaign = '%s'\n", hvCampaign);
    printf("Sdate = '%s'\n", hvSdate);
    rc=DBvPlay(NULL,MMDB_PLAY_FILE,hvVid_fname,MMDB_PLAY_WAIT);
}
EXEC SQL CLOSE c1;


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