Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Programmierung » SQL Anywhere Datenzugriff-APIs » SQL Anywhere Embedded SQL » Lange Werte senden und abfragen

 

LONG-Daten senden

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.

♦  So senden Sie einen LONG-Wert (Static SQL)
  1. Deklarieren Sie eine Hostvariable vom Typ DECL_LONGVARCHAR, DECL_LONGVARCHAR oder DECL_LONGBINARY, wie erforderlich.

  2. Wenn Sie NULL senden, stellen Sie die Indikatorvariable auf einen negativen Wert ein.

    Weitere Hinweise finden Sie unter Indikatorvariable.

  3. Stellen Sie das stored_len-Feld der Hostvariablenstruktur auf die Anzahl der Byte der Daten im Array-Feld.

  4. 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;
}
♦  So senden Sie einen LONG-Wert (Dynamic SQL)
  1. Stellen Sie das sqltype-Feld auf DT_LONGVARCHAR, DT_LONGNVARCHAR oder DT_LONGBINARY ein, wie erforderlich.

  2. Wenn Sie NULL senden, stellen Sie * sqlind auf einen negativen Wert ein.

  3. 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.

  4. Stellen Sie das array_len-Feld der Hostvariablenstruktur auf die Anzahl der Bytes ein, die dem Array-Feld zugeordnet sind.

  5. 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.

  6. Senden Sie die Daten, indem Sie den Cursor öffnen oder die Anweisung ausführen.