用户显示 Robert Smith 的图象并播放 Robert Smith 的录音。图象以 BLOB 形式存储在 Employee 表中;录音的内容存储在服务器文件中。
用户的工作:用户使用包括 SQL 语句的应用程序显示图象和播放录音,这些 SQL 语句显示在下例中。
EXEC SQL BEGIN DECLARE SECTION; char hvImg_hdl [251]; char hvAud_hdl [251]; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT PICTURE, /*Get image handle*/ VOICE /*Get audio handle*/ INTO :hvImg_hdl, :hvAud_hdl FROM EMPLOYEE WHERE NAME='Robert Smith'; rc=DBiBrowse( NULL, /*Use default image browser*/ MMDB_PLAY_HANDLE, /*Use handle*/ hvImg_hdl, /*Image handle*/ MMDB_PLAY_NO_WAIT); /*Run browser independently*/ rc=DBaPlay( NULL, /*Use default audio player*/ MMDB_PLAY_HANDLE, /*Use handle*/ hvAud_hdl, /*Audio handle*/ MMDB_PLAY_WAIT); /*Wait for player to end*/ /*before continuing*/ |
发生的情况: DB2 检索 Robert Smith 的图象和录音的句柄。然后,作为对 DBiBrowse API 的响应,Image Extender 获取与检索到的图象句柄相关联的图象内容。Image Extender 从数据库检索图象内容, 并将其放到临时客户机文件中,以供图象浏览器显示。NULL 参数指示将使用用户系统的缺省图象浏览器。浏览器将独立于调用程序运行,这意味着调用程序在继续之前, 不会等待图象浏览器完成。
作为对 DBaPlay API 的响应,Audio Extender 获取与检索到的音频句柄相关联的音频的文件名,并将该文件名传送至音频播放程序。NULL 参数指示将使用用户系统的缺省音频播放程序。调用程序在继续之前,将等待用户结束音频播放程序。