Verwenden Sie eine Host-Variable oder eine Dateireferenzvariable, um den Inhalt eines Abbild-, Audio- oder Videoobjekts von einem Client-Puffer oder einer Client-Datei auf den Server zu übertragen.
Befindet sich das Objekt in einer Client-Datei, sollten Sie eine Dateireferenzvariable verwenden, um seinen Inhalt zum Speichern auf den Server zu übertragen. Die Anweisungen im folgenden Beispiel für ein C-Anwendungsprogramm definieren eine Dateireferenzvariable mit dem Namen Audio_file und verwenden sie, um einen Audioclip, dessen Inhalt sich in einer Client-Datei befindet, zu übertragen. Der Audioclip ist in einer Datenbanktabelle auf dem Server gespeichert. Beachten Sie, daß das Feld file_option der Dateireferenzvariablen auf die Option für die Eingabe SQL_FILE_READ gesetzt ist. Beachten Sie auch, daß die Dateireferenzvariable als Inhaltsargument für die benutzerdefinierte Funktion "DB2Audio" verwendet wird.
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB_FILE Audio_file; EXEC SQL END DECLARE SECTION; strcpy (Audio_file.name, "/employee/sounds/ajones.wav"); Audio_file.name_length= strlen(Audio_file.name); Audio_file.file_options= SQL_FILE_READ; EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anita Jones', DB2AUDIO( CURRENT SERVER, :Audio_file, /* file reference variable */ 'WAVE', CAST(NULL as LONG VARCHAR), 'Anita''s voice') );
Befindet sich das Objekt in einem Client-Puffer, sollten Sie eine Host-Variable verwenden, die entweder als BLOB oder BLOB_LOCATOR definiert ist, um seinen Inhalt zum Speichern auf den Server zu übertragen. In den folgenden Anweisungen für ein C-Anwendungsprogramm wird eine Host-Variable mit dem Namen Video_loc verwendet, um den Inhalt eines Videoclips zum Speichern auf den Server zu übertragen. Der Videoclip wird als BLOB in einer Datenbanktabelle gespeichert. Beachten Sie, daß die Host-Variable als Inhaltsargument für die benutzerdefinierte Funktion "DB2Video" verwendet wird.
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB_LOCATOR Video_loc; EXEC SQL END DECLARE SECTION; EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anita Jones', DB2VIDEO( CURRENT SERVER, :Video_loc, /* host variable */ 'MPEG1', '', 'Anita''s video') );
Stellen Sie sicher, daß genügend UDF-Speicher zur Verfügung steht: Wenn Sie ein Objekt speichern, dessen Inhalt sich in einem Client-Puffer befindet, müssen Sie sicherstellen, daß der Parameter UDF_MEM_SZ in der
Datenbankmanagerkonfiguration auf einen Wert von mindestens 4 MB gesetzt ist. Sie können den Parameter UDF_MEM_SZ aktualisieren, indem Sie den DB2-Befehl UPDATE DATABASE MANAGER CONFIGURATION verwenden.
Weitere Informationen zum Befehl UPDATE DATABASE MANAGER befinden sich im Handbuch DB2 Command Reference.