La fonction UDF Replace peut avoir différents formats selon son utilisation. Ces formats sont les suivants :
Format 1 : Mise à jour d'un objet et son commentaire à partir de la mémoire tampon ou d'un fichier client :
Replace( handle, /* descripteur objet */ content, /* contenu de l'objet */ source_format, /* format source */ target_file, /* nom du fichier cible pour stockage */ /* dans un fichier */ comment /* commentaire */ );
Format 2 : Mise à jour d'un objet et de son commentaire à partir d'un fichier du serveur
Replace( handle, /* descripteur objet */ source_file, /* nom du fichier du serveur */ source_format, /* format source */ stortype, /* MMDB_STORAGE_TYPE_EXTERNAL=stockage */ /* sur un serveur de fichiers*/ /* MMDB_STORAGE_TYPE_INTERNAL=stockage */ /* en tant qu'objet BLOB */ comment /* commentaire */ );
Format 3 : Remplacement d'un objet dont les attributs sont définis par l'utilisateur et de son commentaire à partir de la mémoire tampon ou d'un fichier du poste client
Replace( handle, /* descripteur objet */ content, /* contenu de l'objet */ target_file, /* nom du fichier cible pour stockage */ /* dans un fichier */ /* ou NULL pour stockage dans une table */ /* en tant qu'objet BLOB */ comment, /* commentaire */ attrs, /* attributs définis par l'utilisateur */ thumbnail /* miniature */ );
Format 4 : Stockage d'un objet dont les attributs sont définis par l'utilisateur, à partir d'un fichier du serveur :
Replace( handle, /* descripteur objet */ source_file, /* nom du fichier du serveur */ stortype, /* MMDB_STORAGE_TYPE_EXTERNAL=stockage */ /* sur un serveur de fichiers*/ /* MMDB_STORAGE_TYPE_INTERNAL=stockage */ /* en tant qu'objet BLOB */ comment, /* commentaire */ attrs, /* attributs définis par l'utilisateur */ thumbnail /* miniature */ );
Pour les objets image uniquement, la fonction UDF Replace présente des formats supplémentaires :
Format 5 : Mise à jour d'un objet et de son commentaire à partir de la mémoire tampon ou d'un fichier client avec conversion de format :
Replace( handle, /* descripteur objet */ content, /* contenu de l'objet */ source_format, /* format source */ target_format, /* format cible */ target_file, /* nom du fichier cible pour stockage sur le */ /* serveur de fichiers */ /* ou NULL pour stockage dans une table */ /* en tant qu'objet BLOB */ comment /* commentaire */ );
Format 6 : Mise à jour d'un objet et de son commentaire à partir d'un fichier du serveur avec conversion de format :
Replace( handle, /* descripteur objet */ source_file, /* nom du fichier du serveur */ source_format, /* format source */ target_format, /* format cible */ target_file, /* MMDB_STORAGE_TYPE_EXTERNAL=stockage */ /* sur un serveur de fichiers */ /* MMDB_STORAGE_TYPE_INTERNAL=stockage */ /* en tant qu'objet BLOB */ comment /* commentaire */ );
Format 7 : Mise à jour d'une image et de son commentaire à partir de la mémoire tampon ou d'un fichier client avec conversion de format et modifications supplémentaires :
Replace( handle, /* descripteur objet */ content, /* contenu de l'objet */ source_format, /* format source */ target_format, /* format cible */ conversion_options, /* options de conversion */ target_file, /* nom du fichier cible pour stockage sur le */ /* serveur de fichiers */ /* ou NULL pour stockage dans une table */ /* en tant qu'objet BLOB */ comment /* commentaire */ );
Format 8 : Mise à jour d'un objet et de son commentaire à partir d'un fichier du serveur avec conversion de format et modifications supplémentaires :
Replace( handle, /* descripteur objet */ source_file, /* nom du fichier du serveur */ source_format, /* format source */ target_format, /* format cible */ conversion_options, /* options de conversion */ target_file, /* MMDB_STORAGE_TYPE_EXTERNAL=stockage */ /* sur un serveur de fichiers */ /* MMDB_STORAGE_TYPE_INTERNAL=stockage */ /* en tant qu'objet BLOB */ comment /* commentaire */ );
Par exemple, les instructions ci-après, incluses dans un programme d'application en langage C, mettent à jour une séquence audio et son commentaire dans la table Employés. Les données de mise à jour se trouvent dans un fichier du serveur appelé adupont.wav. La séquence audio modifiée est stockée dans la table Employés en tant qu'objet BLOB sans conversion de format (l'extension Audio ne prend pas en charge la conversion de format). Cette opération correspond au format 2.
EXEC SQL BEGIN DECLARE SECTION; long hvStorageType; EXEC SQL END DECLARE SECTION; hvStorageType=MMDB_STORAGE_TYPE_INTERNAL; EXEC SQL UPDATE EMPLOYEE SET SOUND=REPLACE( SOUND, /*descripteur audio*/ '/Employés/nouvaud/adupont.wav', /*fichier source */ 'WAV', /*conserv.format audio*/ :hvStorageType, /*stockage de la séquence*/ /*audio dans la BD*/ /*en tant que BLOB*/ 'Nouveau message de bienvenue d''Anne') /*commentaire*/ WHERE NAME='Anne Dupont';
L'exemple suivant illustre la mise à jour d'une image et de son commentaire. Les données de mise à jour se trouvent dans un fichier du serveur. L'image modifiée est stockée dans la table Employés en tant qu'objet BLOB et convertie du format BMP au format GIF au moment de la mise à jour. (Cela correspond au format 6 ci-dessus.)
EXEC SQL UPDATE EMPLOYEE SET PICTURE=REPLACE( PICTURE, /*descripteur image*/ '/Employés/nouvimg/adupont.bmp', /*fichier source*/ 'BMP', /*format source*/ 'GIF', /*format cible*/ '' /*stockage de l'image dans la*/ /*BD en tant qu'objet BLOB*/ 'Nouvelle photo d''Anne') WHERE NAME='Anne Dupont'; /* commentaire utilisateur */