La fonction UDF Thumbnail permet de mettre à jour la miniature d'un objet image ou vidéo (ou d'ajouter une miniature si l'image ou la séquence vidéo n'en possède pas). Lorsque vous utilisez cette fonction UDF, spécifiez le descripteur de l'objet dont vous voulez modifier la miniature, ainsi que le contenu de la miniature nouvelle ou modifiée.
Générez la miniature dans votre programme car les extensions ne fournissent pas d'API à cette fin. C'est vous qui définissez la taille et le format de la miniature de mise à jour. Créez également la structure de la miniature dans votre programme et spécifiez-la dans la fonction UDF.
Par exemple, l'instruction suivante, incluse dans un programme d'application en langage C, met à jour la miniature associée à une séquence vidéo stockée :
EXEC SQL BEGIN DECLARE SECTION; struct { short len; char data[10000]; }hvThumbnail; EXEC SQL END DECLARE SECTION; /*Création de la miniature et stockage dans la variable hvThumbnail*/ EXEC SQL UPDATE EMPLOYEE SET picture=Thumbnail( picture, :hvThumbnail) WHERE name='Anne Dupont';
Vous pouvez également mettre à jour la miniature d'un objet image ou vidéo dont les attributs sont définis par l'utilisateur. En réalité, lorsque vous modifiez un tel objet image ou vidéo, vous devez spécifier une miniature en entrée. Si vous ne souhaitez pas mettre à jour la miniature en même temps que l'objet, spécifiez la valeur NULL ou une chaîne vide en remplacement de la référence à la miniature.
Les instructions ci-après, incluses dans un programme d'application en langage C, mettent à jour une séquence vidéo associée à des attributs définis par l'utilisateur, ainsi que sa miniature.
EXEC SQL BEGIN DECLARE SECTION; long hvStorageType; struct { short len; char data [400]; }hvVidattrs; struct { short len; char data[10000]; }hvThumbnail; EXEC SQL END DECLARE SECTION; hvStorageType=MMDB_STORAGE_TYPE_EXTERNAL; MMDBVideoAttrs *pvideoAttr; pvideoAttr=(MMDBVideoAttrs *)hvVidattrs.data; strcpy(pvideoAttr>cformat,"Formatv"); hvVidattrs.len=sizeof(MMDBVideoAttrs); /* Mise à jour d'une séquence vidéo et de sa miniature */ EXEC SQL UPDATE EMPLOYEE SET VIDEO=REPLACE( VIDEO, '/Employés/nouvvid/adupont.mpg', :hvStorageType, 'Nouvelle séquence vidéo d''Anne', :VidAttrs, :hvThumbnail) /*miniature*/ WHERE NAME='Anne Dupont';