Lorsque vous stockez un objet image, audio ou vidéo dans une base de données, l'extension enregistre également les attributs de celui-ci dans la base. Lorsque vous mettez à jour un objet, l'extension modifie les attributs de l'objet stocké dans la base de données. Vous pouvez utiliser ces attributs dans les requêtes.
Les extensions créent des fonctions UDF pour chaque attribut qu'elles
gèrent. Il en résulte que vous pouvez spécifier ces fonctions UDF dans
des instructions SQL pour accéder aux attributs d'un objet et les
utiliser. Le Le tableau ci-après répertorie les attributs gérés par les
extensions, ainsi que les fonctions UDF correspondantes. Il indique
également les types d'objet pour chaque attribut. Certains
attributs, tels que le format d'un objet et le nom de fichier, sont
communs à tous les types d'objet ; c'est-à-dire qu'ils
sont associés aussi bien aux objets image, audio que vidéo.
D'autres attributs, tels la fréquence d'échantillonnage ou le type
de compression, sont propres aux objets audio et vidéo.
Tableau 6. Attributs gérés par DB2 Extensions
Attribut | Fonction UDF | Image | Audio | Vidéo |
---|---|---|---|---|
Nom du fichier du serveur dans lequel l'objet est stocké | Filename | x | x | x |
ID de l'utilisateur qui a stocké l'objet | Importer | x | x | x |
Date et heure de stockage de l'objet | ImportTime | x | x | x |
Taille de l'objet en octets | Size | x | x | x |
ID du dernier utilisateur ayant mis l'objet à jour | Updater | x | x | x |
Date et heure de la dernière mise à jour de l'objet | UpdateTime | x | x | x |
Format de l'objet (par exemple, GIF ou MPEG1) | Format | x | x | x |
Commentaires sur l'objet | Comment | x | x | x |
Hauteur de l'objet (en pixels) | Height | x | x | |
Largeur de l'objet (en pixels) | Width | x | x | |
Nombre de couleurs de l'objet | NumColors | x | ||
Image miniature de l'objet | Thumbnail | x | x | |
Nombre d'octets renvoyés par échantillon dans une séquence audio ou dans une piste audio d'une vidéo | AlignValue | x | x | |
Nombre de bits utilisés pour représenter chaque échantillon | BitsPerSample | x | x | |
Nombre de canaux enregistrés | NumChannels | x | x | |
Durée (en secondes) | Duration | x | x | |
Fréquence d'échantillonnage (en échantillons par seconde) | SamplingRate | x | x | |
Nombre moyen d'octets par seconde transférés | BytesPerSec | x | ||
Numéro de piste audio pour l'instrument | FindInstrument | x | ||
Numéro de la piste nommée | FindTrackName | x | ||
Nom des instruments enregistrés | GetInstruments | x | ||
Numéros et noms des pistes des instruments enregistrés | GetTrackNames | x | ||
Battements de métronome par seconde | TicksPerSec | x | ||
Battements de métronome par noire | TicksPerQNote | x | ||
Rapport hauteur/largeur | AspectRatio | x | ||
Format de compression vidéo (MPEG1, par exemple) | CompressType | x | ||
Débit en images par seconde | FrameRate | x | ||
Débit maximal (en octets par seconde) | MaxBytesPerSec | x | ||
Nombre de pistes audio | NumAudioTracks | x | x | |
Nombre d'images vidéo | NumFrames | x | ||
Nombre de pistes vidéo | NumVideoTracks | x |
Vous pouvez utiliser une fonction UDF d'attribut comme argument dans la clause SELECT ou comme critère de recherche dans la clause WHERE d'une instruction SQL. Lorsque vous appelez la fonction UDF, entrez le nom de la colonne de la table de base de données qui contient le descripteur objet.
Par exemple, l'instruction suivante utilise la fonction UDF Updater dans la clause SELECT d'une instruction SQL SELECT pour extraire l'ID du dernier utilisateur ayant modifié une image dans la table Employés :
EXEC SQL BEGIN DECLARE SECTION; char hvUpdatr[30]; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT UPDATER(PICTURE) INTO :hvUpdatr FROM EMPLOYEE WHERE NAME = 'Anne Dupont';
L'instruction suivante utilise la fonction UDF Filename dans la clause SELECT d'une instruction SELECT et la fonction UDF NumAudioTracks dans la clause WHERE pour rechercher les séquences vidéo de la table Employés qui possèdent des bandes son :
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;