Wenn Sie ein Abbild-, Audio- oder Videoobjekt in einer Datenbank speichern, speichert der Extender auch die Attribute des Objekts in der Datenbank. Wenn Sie ein Objekt aktualisieren, aktualisiert der Extender auch die Attribute, die in der Datenbank gespeichert sind. Diese Attribute können in Abfragen verwendet werden.
Für jedes von den Extendern verwaltete Attribut werden benutzerdefinierte
Funktionen erstellt. Daher können Sie benutzerdefinierte Funktionen
(UDFs) in SQL-Anweisungen angeben, um auf Objektattribute zuzugreifen und sie
zu verwenden. In In der folgenden Tabelle werden die Attribute, die die
Extender verwenden, und ihre benutzerdefinierten Funktionen
aufgelistet. Außerdem gibt die Tabelle die Objekttypen für jedes
Attribut an. Manche dieser Attribute, wie beispielsweise das Format
oder der Dateiname eines Objekts, werden für alle Objekttypen
verwendet. Diese Attribute sind Abbild-, Audio- und Videoobjekten
zugeordnet. Andere Attribute, wie beispielsweise die Abtastrate oder
die Komprimierungsart, sind bestimmten Objekttypen (z. B. Audio-
oder Videoobjekt) zugeordnet.
Tabelle 6. Von den DB2 Extendern verwaltete Attribute
Attribut | UDF | Image | Audio | Video |
---|---|---|---|---|
Name der Server-Datei, in der das Objekt gespeichert ist | Filename | x | x | x |
Benutzer-ID des Benutzers, der das Objekt gespeichert hat | Importer | x | x | x |
Datum und Uhrzeit, zu dem bzw. der das Objekt gespeichert wurde | ImportTime | x | x | x |
Größe des Objekts in Byte | Size | x | x | x |
Benutzer-ID des Benutzers, der das Objekt zuletzt aktualisiert hat | Updater | x | x | x |
Datum und Uhrzeit, zu dem bzw. der das Objekt zuletzt aktualisiert wurde | UpdateTime | x | x | x |
Format des Objekts (z. B. GIF oder MPEG1) | Format | x | x | x |
Kommentare zum Objekt | Comment | x | x | x |
Höhe des Objekts in Pixel | Height | x | x | |
Breite des Objekts in Pixel | Width | x | x | |
Anzahl der Farben im Objekt | NumColors | x | ||
Piktogrammgroßes Abbild des Objekts | Thumbnail | x | x | |
Anzahl der Byte, die pro Sample in einem Ton oder einer Tonspur eines Videos zurückgegeben werden | AlignValue | x | x | |
Anzahl der für jedes Sample verwendeten Bit | BitsPerSample | x | x | |
Anzahl der aufgezeichneten Kanäle | NumChannels | x | x | |
Dauer in Sekunden | Duration | x | x | |
Abtastrate (in Samples pro Sekunde) | SamplingRate | x | x | |
Durchschnittlicher Übertragungswert in Byte pro Sekunde | BytesPerSec | x | ||
Nummer der Tonspur für das Instrument | FindInstrument | x | ||
Spurnummer der angegebenen Spur | FindTrackName | x | ||
Name der aufgezeichneten Instrumente | GetInstruments | x | ||
Spurnummern und Namen der aufgezeichneten Instrumente | GetTrackNames | x | ||
Taktimpulse pro Sekunde des Audioclips | TicksPerSec | x | ||
Taktimpulse pro Viertelnote des Audioclips | TicksPerQNote | x | ||
Streckungsverhältnis | AspectRatio | x | ||
Videokomprimierungsformat (z. B. MPEG1) | CompressType | x | ||
Vollbilder pro Sekunde Durchsatz | FrameRate | x | ||
Maximaler Durchsatz in Byte pro Sekunde | MaxBytesPerSec | x | ||
Anzahl der Tonspuren | NumAudioTracks | x | x | |
Anzahl der Vollbilder | NumFrames | x | ||
Anzahl der Videospuren | NumVideoTracks | x |
Sie können eine Attribut-UDF im Ausdruck einer SELECT-Klausel oder in der Suchbedingung einer WHERE-Klausel in einer SQL-Anweisung verwenden. Geben Sie bei der Anforderung der UDF den Namen der Spalte in der Datenbanktabelle an, die die Kennung des Objekts enthält.
Die folgende Anweisung verwendet beispielsweise die UDF "Updater" in der SELECT-Klausel einer SQL-Anweisung SELECT, um die Benutzer-ID des Benutzers abzurufen, der ein Abbild in der Tabelle 'employee' zuletzt aktualisiert hat:
EXEC SQL BEGIN DECLARE SECTION; char hvUpdatr[30]; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT UPDATER(PICTURE) INTO :hvUpdatr FROM EMPLOYEE WHERE NAME = 'Anita Jones';
Die folgende Anweisung verwendet die UDF "Filename" in der SELECT-Klausel einer SQL-Anweisung SELECT und die UDF "NumAudioTracks" in der WHERE-Klausel, um in der Tabelle 'employee' gespeicherte Videos zu suchen, die über Tonspuren verfügen.
EXEC SQL BEGIN DECLARE SECTION; char hvVid_fname[251]; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT FILENAME(VIDEO) INTO :hvVid_fname FROM EMPLOYEE WHERE NUMAUDIOTRACKS(VIDEO)>0;