Mit dem vordefinierten Datentyp SQLFILE können Sie Host-Variablen deklarieren, die das direkte Übertragen von Dateiinhalten in und aus LONG-Spalten erlauben.
Weisen Sie der Host-Variablen als Wert den Namen einer Datei zu. Beachten Sie dabei folgende Punkte:
· Existiert diese Datei bereits, muss ihr Inhalt eine Zeichenkette beliebiger Länge sein. Die SQL-Anweisungen INSERT und UPDATE schreiben den Inhalt der Datei in die LONG-Spalte.
· Existiert diese Datei noch nicht, wird sie bei SELECT-Anweisungen einer LONG-Spalte mit dem angegebenen Dateinamen erzeugt. Der Spalteninhalt wird als Inhalt der Datei ausgegeben.
· Existiert diese Datei bereits bei der Ausführung einer SELECT-Anweisung, dann wird der Inhalt der LONG-Spalte an ihren existierenden Inhalt angehängt. Wenn Sie dies vermeiden wollen, müssen Sie die existierende Datei vor Ausführen der SELECT-Anweisung löschen, zum Beispiel mit einer EXEC COMMAND-Anweisung.
· Fehler in der Verarbeitung der Datei führen zum Abbruch der SQL-Anweisung, und Sie erhalten als Rückmeldung des Datenbanksystems eine Fehlermeldung sqlcode < 0.
EXEC SQL BEGIN DECLARE SECTION;
SQLFILE f1[30] = "document.doc";
char title[41] = "Handbuch";
SQLFILE f2[30];
EXEC SQL END DECLARE SECTION;
EXEC SQL CREATE TABLE documents(title CHAR (40) KEY,
document LONG BYTE);
EXEC SQL INSERT INTO documents VALUES (:title, :f1);
strcpy (f2, "tempdocument.doc");
EXEC SQL SELECT document INTO :f2 FROM documents
WHERE title = :title;