可显示或播放以 BLOB 形式存储在数据库表中的对象, 也可播放其内容存储在文件中(并从数据库表中指向)的对象。若以 BLOB 形式存储对象,则指定 MMDB_PLAY_HANDLE。若对象内容存储在文件中,则指定 MMDB_PLAY_FILE。MMDB_PLAY_HANDLE 和 MMDB_PLAY_FILE 是由 Extender 定义的常量。
例如,C 应用程序中的以下语句播放其内容在文件中的视频:
rc = DBvPlay( "explore %s", MMDB_PLAY_FILE, /* content in file */ "/Employee/Videos/ajones.mpg", MMDB_PLAY_NO_WAIT );
显示和播放程序通常接受来自文件的输入。若指定 MMDB_PLAY_FILE,则 Extender 将使用环境变量中的值来解析文件的相对文件名和路径。然后,Extender 启动浏览器并将文件名传送给它。若指定 MMDB_PLAY_HANDLE, 则 Extender 从句柄中抽取文件名(倘若文件名非空的话)。若句柄中的文件名为空, 则表示对象以 BLOB 形式存储。Extender 将在客户机中创建一个临时文件, 并将对象的内容从数据库表复制至该客户机文件。然后,Extender 将启动程序, 并将存放内容的文件(或临时文件)的名称传送给它。
例如,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 形式存储的,则 Extender 将自动将其检索至客户机。