Extensions Image, Audio et Vidéo Administration et programmation

Mise à jour d'un objet dont les attributs sont définis par l'utilisateur

Lors de la mise à jour d'un objet image, audio ou vidéo stocké avec des attributs définis par l'utilisateur, vous devez spécifier les attributs des données de mise à jour. Définissez les valeurs des attributs sous forme de structure. La structure d'attributs doit être contenue dans la zone de données de la variable LONG VARCHAR FOR BIT DATA de la fonction UDF.

Le code UDF qui s'exécute sur le serveur attend toujours des données au format "big endian". Ce dernier est utilisé pour la plupart des plateformes UNIX. Dans le cas d'un objet au format "little endian", vous devez préparer les données dont les attributs sont définis par l'utilisateur de sorte que le code UDF sur le serveur puisse les traiter correctement. Le format little endian est, en règle générale, utilisé sur les plateformes Intel et d'autres types de microprocesseurs. (Même si vous n'avez pas recours au format little endian, il est recommandé de préparer les données dont les attributs sont définis par l'utilisateur.) Utilisez l'interface API DBiPrepareAttrs pour préparer les attributs des objets image, l'interface API DBaPrepareAttrs pour les objets audio, et l'interface API DBvPrepareAttrs pour les objets vidéo.

Par exemple, les instructions ci-après, incluses dans un programme d'application en langage C, mettent à jour une image se trouvant dans un fichier du serveur. L'image a un format défini par l'utilisateur, une hauteur de 640 pixels et une largeur de 480 pixels. Notez que les attributs sont préparés avant la mise à jour de l'image.

EXEC SQL BEGIN DECLARE SECTION;
long hvStorageType;
struct {
        short len;
        char data [400];
       }hvImgattrs;
  EXEC SQL END DECLARE SECTION;
 
DB2IMAGEATTRS    *pimgattr;
 
hvStorageType=MMDB_STORAGE_TYPE_INTERNAL;
 
pimgattr = (DB2IMAGEATTRS *) hvImgattrs.data;
strcpy(pimgattr>Format,"FormatI");
pimgattr>width=640;
pimgattr>height=480;
hvImgattrs.len=sizeof(DB2IMAGEATTRS);
 
DBiPrepareAttrs(pimgattr);
 
EXEC SQL UPDATE EMPLOYEE
       SET PICTURE=REPLACE(
                 PICTURE,
                 '/Employés/nouvimg/adupont.bmp',
          :hvStorageType,
                 'Nouvelle photo d''Anne',
                 :ImgAttrs,   /*attributs définis par l'utilisateur*/
          CAST(NULL as LONG VARCHAR))
       WHERE NAME='Anne Dupont';


[ Début de page | Page précédente | Page suivante | Table des matières | Index ]