Dieser Abschnitt beschreibt, wie Sie LONG-Werte an die Datenbank von Embedded SQL-Anwendungen senden. Hintergrundinformationen finden Sie unter Lange Werte senden und abfragen.
Die Prozeduren unterscheiden sich abhängig davon, ob Sie Static oder Dynamic SQL verwenden.
Deklarieren Sie eine Hostvariable vom Typ DECL_LONGVARCHAR, DECL_LONGVARCHAR oder DECL_LONGBINARY, wie erforderlich.
Wenn Sie NULL senden, setzen Sie die Indikatorvariable auf einen negativen Wert.
Weitere Hinweise finden Sie unter Indikatorvariablen.
Stellen Sie das stored_len-Feld der Hostvariablenstruktur auf die Anzahl der Byte der Daten im Array-Feld.
Senden Sie die Daten, indem Sie den Cursor öffnen oder die Anweisung ausführen.
Das folgende Codefragment illustriert den Mechanismus, der zum Senden von LONG VARCHAR-Daten mittels Static Embedded SQL verwendet wird. Er dient nur zur Illustration und ist nicht für eine tatsächliche Verwendung bestimmt.
#define DATA_LEN 12800 EXEC SQL BEGIN DECLARE SECTION; // SQLPP initializes longdata.array_len DECL_LONGVARCHAR(128000) longdata; EXEC SQL END DECLARE SECTION; void set_test_var() { // init longdata for sending data memset( longdata.array, 'a', DATA_LEN ); longdata.stored_len = DATA_LEN; printf( "Setting test_var to %d a's\n", DATA_LEN ); EXEC SQL SET test_var = :longdata; } |
Stellen Sie das sqltype-Feld auf DT_LONGVARCHAR, DT_LONGNVARCHAR oder DT_LONGBINARY ein, wie erforderlich.
Wenn Sie NULL senden, stellen Sie * sqlind auf einen negativen Wert ein.
Wenn Sie nicht NULL senden, setzen Sie das Feld sqldata so, dass es auf die LONGVARCHAR-, LONGNVARCHAR-oder LONGBINARY-Hostvariablenstruktur zeigt.
Sie können den Makro LONGVARCHARSIZE(n ), LONGNVARCHARSIZE(n) oder LONGBINARYSIZE(n) verwenden, um die Gesamtanzahl der Byte zu bestimmen, die zugeordnet werden müssen, um n Byte von Daten im Array-Feld aufzunehmen.
Stellen Sie das array_len-Feld der Hostvariablenstruktur auf die Anzahl der Bytes ein, die dem Array-Feld zugeordnet sind.
Stellen Sie das stored_len-Feld der Hostvariablenstruktur auf die Anzahl der Byte der Daten im Array-Feld. Dieser Wert darf nicht größer als len sein.
Senden Sie die Daten, indem Sie den Cursor öffnen oder die Anweisung ausführen.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |