Sie können ein Abbild-, Audio- oder Videoobjekt aktualisieren, das in einer Datenbanktabelle als BLOB oder in einer Server-Datei (auf die von der Datenbank aus verwiesen wird) gespeichert ist.
Wenn Sie ein Objekt aus einem Client-Puffer oder einer Client-Datei aktualisieren, erfolgt die Speicherung als BLOB oder Server-Datei entsprechend den Angaben, die Sie im Parameter 'filename' machen. Die Angabe eines Dateinamens bedeutet, daß ein Objekt aktualisiert werden soll, dessen Inhalt sich in einer Server-Datei befindet. Wenn Sie keinen Dateinamen angeben, bedeutet dies, daß ein als BLOB in einer Datenbanktabelle gespeichertes Objekt aktualisiert werden soll.
Die folgenden Anweisungen in einem C-Anwendungsprogramm aktualisieren beispielsweise ein Abbild, dessen Inhalt sich in einer Server-Datei befindet. Die Aktualisierungsquelle befindet sich in einem Client-Puffer. Der Kommentar zum Abbild wird ebenfalls aktualisiert.
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB (2M) Img_buf EXEC SQL END DECLARE SECTION; EXEC SQL UPDATE EMPLOYEE SET PICTURE=REPLACE( PICTURE, :Img_buf, 'ASIS', '/employee/newimg/ajones.bmp', /*update image in*/ /*server file*/ 'Anita''s new picture') WHERE NAME='Anita Jones';
Geben Sie beim Aktualisieren eines Objekts aus einer Server-Datei die Konstante MMDB_STORAGE_TYPE_INTERNAL an, wenn Sie ein als BLOB in einer Datenbanktabelle gespeichertes Objekt aktualisieren wollen. Wollen Sie ein Objekt aktualisieren, dessen Inhalt sich in der Server-Datei befindet, geben Sie MMDB_STORAGE_TYPE_EXTERNAL an.
Im folgenden C-Anwendungsprogramm wird beispielsweise ein Audioclip aktualisiert. Der Inhalt des Audioclips befindet sich in einer Server-Datei. Die Quelle für die Aktualisierung befindet sich ebenfalls in einer Server-Datei.
EXEC SQL BEGIN DECLARE SECTION; long hvStorageType; EXEC SQL END DECLARE SECTION; hvStorageType=MMDB_STORAGE_TYPE_EXTERNAL; EXEC SQL UPDATE EMPLOYEE SET SOUND=CONTENT( SOUND, '/employee/newimg/ajones.wav', 'WAVE', :hvStorageType) /*update audio in server file*/ WHERE NAME='Anita Jones';