Utilisez une variable SQL ou une variable de référence à un fichier pour transférer le contenu d'un objet image, audio ou vidéo d'une mémoire tampon client ou d'un fichier client vers le serveur.
Si l'objet se trouve dans un fichier du poste client, utilisez une variable de référence à un fichier pour transférer le contenu en vue de son stockage sur le serveur. Par exemple, les instructions ci-après, présentes dans un programme d'application en langage C, définissent une variable de référence à un fichier appelée fichier_audio qui servira à transférer un enregistrement audio se trouvant dans un fichier client. Le clip audio est stocké dans une table de base de données du serveur. A noter que la zone file_option de la variable de référence à un fichier a pour valeur SQL_FILE_READ et que la variable de référence à un fichier sert d'argument à la fonction UDF DB2Audio.
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB_FILE fichier_audio; EXEC SQL END DECLARE SECTION; strcpy (fichier_audio.name, "/Employés/sons/adupont.wav"); fichier_audio.name_length= strlen(fichier_audio.name); fichier_audio.file_options= SQL_FILE_READ; EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anne Dupont', DB2AUDIO( CURRENT SERVER, :fichier_audio, /* variable de référence à un fichier */ 'WAVE', CAST(NULL as LONG VARCHAR), 'Voix d''Anne Dupont') );
Si l'objet se trouve dans la mémoire tampon du poste client, utilisez une variable SQL (définie en tant que BLOB ou BLOB_LOCATOR) pour en transférer le contenu en vue de son stockage sur le serveur. Les instructions ci-après, incluses dans un programme d'application en langage C, font appel à une variable SQL appelée séq_vidéo pour transférer le contenu d'une séquence vidéo en vue de son stockage sur le serveur. La séquence vidéo est stockée dans une table de base de données en tant qu'objet BLOB. A noter que la variable SQL sert d'argument à la fonction UDF DB2Video.
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB_LOCATOR séq_vidéo; EXEC SQL END DECLARE SECTION; EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anne Dupont', DB2VIDEO( CURRENT SERVER, :séq_vidéo, /* variable SQL */ 'MPEG1', '', 'Séquence vidéo d''Anne') );
Vérification de la mémoire UDF disponible : Lorsque vous modifiez un objet dont les données de mise à jour se trouvent dans la mémoire tampon du client, assurez-vous que le paramètre UDF_MEM_SZ du fichier de
configuration du gestionnaire de bases de données est au moins de 4 Mo. Vous pouvez modifier ce paramètre par la commande DB2 UPDATE DATABASE MANAGER CONFIGURATION.
Pour plus d'informations sur la commande UPDATE DATABASE MANAGER, reportez-vous au manuel DB2 Command Reference.