廣告代理商的會計經理需要查看在 1997 年中為 IBM 帳戶製作、少於 30 秒的視訊廣告。
下列圖表顯示用來存取視訊的查詢。 請注意到查詢中稱為 Filename 和 Duration 的 Video Extender UDF。
SELECT FILENAME(ADS_VIDEO) FROM ADS WHERE CLIENT='IBM' AND SHIP_DATE>='01/01/1997' AND DURATION(ADS_VIDEO) <=30 |
該查詢將適當視訊的檔名傳回。然後,專案經理即可啟動其喜歡的視訊播放程式, 來播放每一個視訊檔的內容。
的一個範例。前一個範例顯示專案經理可交互發出的一個查詢。 一般說來,專案經理會使用應用程式來尋找及播放視訊。 下列範例顯示這種應用程式 (以 C 撰寫) 的一些重要元素。 該應用程式在 DB2 主變數 hvVid_fname 中擷取視訊檔名。 同時也請注意, 應用程式使用一個稱為 DBvPlay 的播放 API 來播放視訊。
#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; |