La fonction UDF Content vous permet d'extraire un objet image, audio ou vidéo et de le copier dans un fichier du serveur sans conversion de format. Elle vous permet également d'extraire une image et de la copier dans un fichier du serveur avec conversion de format.
Lors de l'extraction d'un objet image, audio ou vidéo et de sa copie dans un fichier du serveur sans conversion, spécifiez le descripteur objet, le nom du fichier cible et l'indicateur de remplacement. Ce dernier indique à l'extension si les données du fichier cible doivent ou non être remplacées par les données extraites s'il existe déjà un fichier de ce nom sur le serveur. Si le fichier cible n'existe pas, l'extension le crée.
Si vous spécifiez un indicateur de remplacement 1, l'extension remplace le fichier cible par les données extraites. Si vous entrez un indicateur de remplacement 0, il n'y a pas de remplacement : l'extraction n'a donc pas lieu.
L'indicateur de remplacement est ignoré si l'objet à extraire est stocké dans une table de base de données en tant qu'objet BLOB. Le fichier cible sera créé ou remplacé quel que soit l'indicateur de remplacement spécifié.
L'extraction d'un objet et sa copie dans un fichier du serveur renvoie le nom de ce fichier. Par exemple, l'instruction ci-après, incluse dans un programme d'application en langage C, extrait une séquence vidéo et la copie dans un fichier du serveur. Le nom du fichier du serveur est enregistré dans la variable SQL hvVid_fname.
EXEC SQL BEGIN DECLARE SECTION; struct{ short len; char data [250]; }hvVid_fname[; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT CONTENT( VIDEO, /* descripteur vidéo */ '/Employés/vidéo/adupont.mpg', /* fichier du serveur */ 1) /* remplacement du fichier cible */ INTO :hvVid_fname; FROM EMPLOYEE WHERE NAME = 'Anne Dupont';
L'utilisation de la fonction UDF Content pour extraire un objet et le copier dans un fichier du serveur sans conversion est recommandée lorsque l'objet est stocké dans une table de base de données en tant qu'objet BLOB. Si l'objet est stocké dans un fichier du serveur, la copie de ce dernier dans le fichier cible peut être plus rapide.
Lors de l'extraction d'une image vers un fichier du serveur avec conversion de format, spécifiez le descripteur image, le nom du fichier cible, l'indicateur de remplacement et le format cible. Le Tableau 4 répertorie les conversions de format admises. Vous pouvez également choisir d'indiquer comme format cible la valeur NULL, une chaîne vide ou encore la chaîne ASIS. Dans ce cas, l'image extraite est au même format que la source.
Par exemple, les instructions ci-après, incluses dans un programme d'application en langage C, permettent l'extraction d'une image et sa copie dans un fichier du serveur. L'image source est au format bitmap et elle est stockée dans une table de base de données en tant qu'objet BLOB. L'image extraite est convertie au format GIF. Le nom du fichier du serveur est enregistré dans la variable SQL hvImg_fname.
EXEC SQL BEGIN DECLARE SECTION; struct{ short len; char [400]; }hvImg_fname[; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT CONTENT( PICTURE, /* descripteur image */ '/Employés/images/adupont.gif', /* fichier cible */ 1, /* remplacement du fichier cible */ 'GIF') /* format cible */ INTO :hvImg_fname FROM EMPLOYEE WHERE NAME = 'Anne Dupont';
Le fichier du serveur doit être accessible : Lors de l'extraction d'un objet dans un fichier du serveur, vous devez spécifier le nom complet du fichier cible. Vous pouvez également vous assurer que les variables d'environnement DB2IMAGEEXPORT, DB2AUDIOEXPORT et DB2VIDEOEXPORT sont définies pour résoudre sans erreur un nom de fichier incomplet.