Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

SQL_BLOB_VAL_STOW - SQLbvst

Mit SQL_BLOB_VAL_STOW wird ein neuer BLOB-Wert sequenziell in ein BLOB-Objekt geschrieben. Im Gegensatz dazu wird bei dem CLI-Aufruf SQL_BLOB_VAL_PUT (siehe "SQL_BLOB_VAL_PUT - SQLbvpu") der gesamte Wert in einem Stück geschrieben. SQL_BLOB_VAL_STOW besitzt daher gegenüber SQL_BLOB_VAL_PUT den Vorteil, dass der Puffer nicht die Größe des gesamten neuen BLOB-Werts haben muss. Der neue BLOB-Wert kann in kleinen Teilstücken übergeben werden.

Um einen BLOB-Wert mit SQL_BLOB_VAL_STOW sequenziell zu schreiben, benötigen Sie ein Access-Handle zum Schreiben. Dieses Access-Handle erzeugen Sie mit SQL_BLOB_VAL_OPEN. Dabei legen Sie mit dem Parameter ForWriteAccess dieses Aufrufs fest, dass Sie dieses Access-Handle zum Schreiben benötigen (siehe "SQL_BLOB_VAL_OPEN - SQLbvop"f). SESAM/SQL liefert nach dem Aufruf von SQL_BLOB_VAL_OPEN eine eindeutige Identifikation für das Access-Handle zurück.

Diese Identifikation müssen Sie bei jedem Aufruf von SQL_BLOB_VAL_STOW angeben. Zusätzlich übergeben Sie noch den Puffer, in dem das neue Stück des BLOB-Werts steht, und die Länge dieses Puffers.

Nachdem durch mehrmaliges Aufrufen von SQL_BLOB_VAL_STOW alle Stücke des BLOB-Werts geschrieben wurden, muss das verwendete Access-Handle mit SQL_BLOB_VAL_CLOSE geschlossen werden (siehe "SQL_BLOB_VAL_CLOSE - SQLbvcl"). Erst dabei wird das letzte Stück des neuen BLOB-Werts in die BLOB-Tabelle eingefügt.

Die gesamte Folge von Operationen (SQL_BLOB_VAL_OPEN, wiederholtes SQL_BLOB_VAL_STOW und SQL_BLOB_VAL_CLOSE) muss innerhalb einer Transaktion stattfinden.

Dieser CLI-Aufruf erfordert das INSERT-Privileg für die BLOB-Tabelle.

CLI-Deklaration in C:

void SQL_BLOB_VAL_STOW( char *AccessHandle
          ,char *Buffer
          ,long int const *ValueLength
          ,struct SQLda_t *SQLda);

CLI-Deklaration in Cobol:

IDENTIFICATION DIVISION.
PROGRAM-ID. SQLbvst IS PROTOTYPE.
DATA DIVISION.
LINKAGE SECTION.
   01 AccessHandle PIC X(32).
   01 Buffer.    *> of any length
       02 PIC X(1).
   01 ValueLength PIC S9(9) COMP.
   COPY SQLCA.   *> for group item SQLda.
PROCEDURE DIVISION USING AccessHandle, Buffer, ValueLength, SQLda.
END PROGRAM SQLbvst.


AccessHandle

Der bei SQL_BLOB_VAL_OPEN gelieferte Wert für das Access-Handle muss hier eingegeben werden. Dieser Wert darf vom Aufrufer nicht modifiziert werden.

Buffer

Puffer, der den neuen Wert enthält.

ValueLength

Länge des Werts. ValueLength muss eine Zahl >= 0 sein.

SQLda

Diagnosebereich.