Utilisez une variable SQL ou une variable de référence à un fichier pour mettre à jour le contenu d'un objet image, audio ou vidéo d'une mémoire tampon client ou d'un fichier client.
Si les données de mise à jour se trouvent dans un fichier sur le poste client, utilisez une variable de référence à un fichier pour les transférer. Par exemple, les instructions ci-après, incluses dans un programme d'application en langage C, définissent une variable de référence à un fichier appelé fichier_audio qui sera utilisée pour la mise à jour d'une séquence audio stockée en tant qu'objet BLOB dans la table de base de données. Les données de mise à jour se trouvent dans un fichier du poste client. A noter que la zone file_options de la variable de référence à un fichier a pour valeur SQL_FILE_READ et qu'elle sert d'argument à la fonction UDF Content.
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB_FILE fichier_audio; EXEC SQL END DECLARE SECTION; strcpy (fichier_audio.name, "/Employés/nouvson/adupont.wav"); fichier_audio.name_length= strlen(fichier_audio.name); fichier_audio.file_options= SQL_FILE_READ; EXEC SQL UPDATE EMPLOYEE SET SOUND=CONTENT( SOUND, :fichier_audio /*variable de référence à un fichier*/ 'WAVE', /*conservation du format de l'image*/ CAST(NULL as LONG VARCHAR)) WHERE NAME='Anne Dupont';
Si l'objet de la mise à jour se trouve dans la mémoire tampon du poste client, utilisez une variable SQL pour en transférer le contenu. L'exemple ci-après de programme d'application en C utilise une variable SQL appelée seq_vidéo pour transmettre une séquence vidéo à mettre à jour. Le commentaire associé à la séquence est également modifié. 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 Replace.
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB (2M) séq_vidéo EXEC SQL END DECLARE SECTION; EXEC SQL UPDATE EMPLOYEE SET VIDEO=REPLACE( VIDEO, :séq_vidéo /*variable SQL*/ 'MPEG1', CAST(NULL as LONG VARCHAR), 'Nouvelle séquence vidéo d''Anne') WHERE NAME='Anne Dupont';
Vérification de la mémoire UDF disponible : Lorsque vous mettez à jour 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.