Sie können die Extender-APIs verwenden, um ein Abbild oder ein Videovollbild anzuzeigen, das in einer Datenbank gespeichert ist. Sie können die Version eine Abbilds oder Videovollbilds in Piktogrammgröße oder in normaler Größe anzeigen. Sie können außerdem Extender-APIs verwenden, um Audio- oder Videoobjekte wiederzugeben, die in einer Datenbank gespeichert sind.
Verwenden Sie die folgenden APIs, um Objekte anzuzeigen oder
wiederzugeben:
API | Verwendung |
---|---|
DBiBrowse | Anzeigen eines Abbilds oder Videovollbilds |
DBaPlay | Wiedergeben eines Audioclips |
DBvPlay | Wiedergeben eines Videoclips oder Anzeigen eines Videovollbilds |
Bei der Anforderung dieser APIs sind folgende Angaben erforderlich:
Geben Sie den Namen des Abbild-Browsers, der Audiowiedergabeeinheit oder Videowiedergabeeinheit an, der/die verwendet werden soll. Geben Sie nach dem Namen %s an. Der Extender ersetzt %s durch die Datei, die den Objektinhalt enthält. Beispielsweise startet die folgende Anweisung in einem C-Anwendungsprogramm den OS/2-Abbild-Browser (ib), um ein Abbild anzuzeigen:
rc = DBiBrowse( "ib %s", /* image display program */ MMDB_PLAY_FILE, "/employee/images/ajones.bmp", MMDB_PLAY_NO_WAIT );
Sie können auch einen Nullwert angeben, statt ein bestimmtes Anzeige- oder Wiedergabeprogramm zu benennen. In diesem Fall startet der Extender den Standardabbild-Browser bzw. die Standardaudio- oder -videowiedergabeeinheit, der/die in der Umgebungsvariablen DB2IMAGEBROWSER,
Weitere Informationen darüber, wie die DB2 Extender Umgebungsvariablen verwenden, befinden sich im Anhang A. Umgebungsvariablen für DB2 Extender einstellen.
Beispielsweise startet die folgende Anweisung in einem C-Anwendungsprogramm die Standardaudiowiedergabeeinheit, die in der Umgebungsvariablen DB2AUDIOPLAYER angegeben ist:
rc = DBaPlay( NULL, /* use default audio player */ MMDB_PLAY_FILE, "/employee/sounds/ajones.wav", MMDB_PLAY_NO_WAIT );
Die Umgebungsvariable muß ein Programm angeben: Wenn Sie ein Standardanzeige- oder -wiedergabeprogramm anfordern (durch die Angabe eines Nullwerts), stellen Sie sicher, daß die entsprechende Umgebungsvariable ein Anzeige- oder Wiedergabeprogramm angibt. Ist kein Programm angegeben, gibt die API einen Fehlercode zurück.
Sie können ein Objekt anzeigen oder wiedergeben, das in einer Datenbanktabelle als BLOB gespeichert ist oder dessen Inhalt in einer Datei gespeichert ist (und auf die von der Datenbanktabelle aus gezeigt wird). Wenn das Objekt als BLOB gespeichert ist, geben Sie MMDB_PLAY_HANDLE an. Wenn der Objektinhalt in einer Datei gespeichert ist, geben Sie MMDB_PLAY_FILE an. MMDB_PLAY_HANDLE und MMDB_PLAY_FILE sind Konstanten, die durch die Extender definiert werden.
Beispielsweise gibt die folgende Anweisung in einem C-Anwendungsprogramm ein Video wieder, dessen Inhalt in einer Datei gespeichert ist:
rc = DBvPlay( "explore %s", MMDB_PLAY_FILE, /* content in file */ "/employee/videos/ajones.mpg", MMDB_PLAY_NO_WAIT );
Anzeige- und Wiedergabeprogramme akzeptieren normalerweise die Eingabe aus einer Datei. Wenn Sie angeben, daß sich der Inhalt des Objekts in einer Datei befindet, startet der Extender das Anzeige- oder Wiedergabeprogramm und übergibt ihm den Namen der Datei, die den Inhalt enthält. Wenn Sie angeben, daß das Objekt in einer Datenbanktabelle als BLOB gespeichert ist, erstellt der Extender eine temporäre Datei auf dem Client und kopiert den Inhalt des Objekts aus der Datenbanktabelle in die Client-Datei. Der Extender startet danach das Programm und übergibt ihm den Namen der temporären Datei, die den Inhalt enthält.
Beispielsweise rufen die folgenden Anweisungen in einem C-Anwendungsprogramm die Kennung eines Abbilds ab, das als BLOB gespeichert ist, und verwenden die Kennung zur Anzeige des Abbilds:
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 );
Der Inhalt muß im Zugriff befindlich sein: Stellen Sie sicher, daß das Anzeige- oder Wiedergabeprogramm auf den Objektinhalt zugreifen kann. Wenn sich der Inhalt in einer Server-Datei befindet, für das Programm aber erforderlich ist, daß sich der Inhalt auf dem Client befindet, kopieren Sie die Datei in eine Client-Datei oder verwenden Sie die UDF Content. Wenn der Inhalt als BLOB gespeichert ist, ruft der Extender ihn automatisch auf den Client ab.
Sie können angeben, ob das Anwendungsprogramm, bevor es mit der Verarbeitung fortfährt (d. h. , bevor die API DBiBrowse, DBaPlay oder DBvPlay einen Code zurückgibt), darauf warten soll, daß der Benutzer das Anzeige- oder Wiedergabeprogramm beendet. Wenn das Anwendungsprogramm warten soll, geben Sie MMDB_PLAY_WAIT an. Wenn das Anwendungsprogramm nicht warten soll, geben Sie MMDB_PLAY_NO_WAIT an. MMDB_PLAY_WAIT und MMDB_PLAY_NO_WAIT sind Konstanten, die durch die Extender definiert werden.
Wenn Sie MMDB_PLAY_WAIT angeben, wird das Anzeige- oder Wiedergabeprogramm in dem gleichen Thread oder Prozeß ausgeführt wie Ihr Anwendungsprogramm. Wenn Sie MMDB_PLAY_NO_WAIT angeben, wird das Anzeige- oder Wiedergabeprogramm unabhängig von Ihrem Anwendungsprogramm in einem eigenen Thread oder Prozeß ausgeführt.
Beispielsweise führt die folgende Anweisung dazu, daß das Anwendungsprogramm darauf wartet, daß der Benutzer den Abbild-Browser schließt, bevor es mit der Verarbeitung fortfährt:
rc = DBiBrowse( "explore %s", MMDB_PLAY_FILE, "/employee/images/ajones.bmp", MMDB_PLAY_WAIT /* wait for browser to close */ );
Vorsichtig mit der Angabe DBxPlay und MMDB_PLAY_NO_WAIT umgehen: Wenn Sie die API DBaPlay oder DBvPlay verwenden, erstellt der Extender eine temporäre Datei für das wiederzugebende Objekt. Die temporäre Datei wird in dem Verzeichnis erstellt, das durch die Umgebungsvariable TMP angegeben ist. Wenn Sie MMDB_PLAY_WAIT angeben, löscht der Extender die temporäre Datei, nachdem das Objekt wiedergegeben wurde. Wenn Sie jedoch MMDB_PLAY_NO_WAIT angeben, wird die temporäre Datei nicht gelöscht. Sie müssen sie selbst löschen.