Nur eine begrenzte Anzahl von C-Datentypen werden als Hostvariablen unterstützt. Andererseits haben bestimmte Hostvariablen keinen entsprechenden Datentyp in C.
In der Header-Datei sqlca.h festgelegte Makros können dazu verwendet werden, Hostvariablen des folgenden Typs zu definieren: NCHAR, VARCHAR, NVARCHAR, LONGVARCHAR, LONGNVARCHAR, BINARY, LONGBINARY, DECIMAL, DT_FIXCHAR, DT_NFIXCHAR, DATETIME (SQLDATETIME), BIT, BIGINT oder UNSIGNED BIGINT. Sie werden wie folgt benutzt:
EXEC SQL BEGIN DECLARE SECTION; DECL_NCHAR v_nchar[10]; DECL_VARCHAR( 10 ) v_varchar; DECL_NVARCHAR( 10 ) v_nvarchar; DECL_LONGVARCHAR( 32768 ) v_longvarchar; DECL_LONGNVARCHAR( 32768 ) v_longnvarchar; DECL_BINARY( 4000 ) v_binary; DECL_LONGBINARY( 128000 ) v_longbinary; DECL_DECIMAL( 30, 6 ) v_decimal; DECL_FIXCHAR( 10 ) v_fixchar; DECL_NFIXCHAR( 10 ) v_nfixchar; DECL_DATETIME v_datetime; DECL_BIT v_bit; DECL_BIGINT v_bigint; DECL_UNSIGNED_BIGINT v_ubigint; EXEC SQL END DECLARE SECTION; |
Der Präprozessor erkennt diese Makros innerhalb eines Embedded SQL-Deklarationsabschnitts und behandelt Variablen ihrem Typ entsprechend. Es wird empfohlen, den Typ DECIMAL (DT_DECIMAL, DECL_DECIMAL) nicht zu verwenden, da das Format von Dezimalzahlen herstellerspezifisch ist.
Die folgende Tabelle zeigt die C-Variablentypen, die als Hostvariablen erlaubt sind und die entsprechenden Datentypen der Embedded SQL-Schnittstelle.
C-Datentyp | Datentyp der Embedded SQL-Schnittstelle | Beschreibung | ||
---|---|---|---|---|
|
DT_SMALLINT | 16-Bit-Ganzzahl mit Vorzeichen | ||
|
DT_UNSSMALLINT | 16-Bit Ganzzahl ohne Vorzeichen | ||
|
DT_INT | 32-Bit-Ganzzahl mit Vorzeichen | ||
|
DT_UNSINT | 32-Bit Ganzzahl ohne Vorzeichen | ||
|
DT_BIGINT | 64-Bit-Ganzzahl mit Vorzeichen | ||
|
DT_UNSBIGINT | 64-Bit-Ganzzahl ohne Vorzeichen. | ||
|
DT_FLOAT | einfachgenauer 4-Byte-Gleitkommazahl-Wert. | ||
|
DT_DOUBLE | doppeltgenauer 8-Byte-Gleitkommazahl-Wert. | ||
|
DT_STRING | Mit NULL abgeschlossene Zeichenfolge im CHAR-Zeichensatz. Die Zeichenfolge wird mit Leerzeichen aufgefüllt, wenn bei der Initialisierung der Datenbank mit Leerzeichen aufgefüllte Zeichenfolgen verwendet werden. Diese Variable speichert n-1 Byte und das Nullabschlusszeichen. | ||
|
DT_STRING | Mit NULL abgeschlossene Zeichenfolge im CHAR-Zeichensatz. Diese Variable zeigt auf einen Bereich, der bis zu 32766 Byte plus das Nullabschlusszeichen speichern kann. | ||
|
DT_NSTRING | Mit NULL abgeschlossene Zeichenfolge im NCHAR-Zeichensatz. Die Zeichenfolge wird mit Leerzeichen aufgefüllt, wenn bei der Initialisierung der Datenbank mit Leerzeichen aufgefüllte Zeichenfolgen verwendet werden. Diese Variable speichert n-1 Byte plus das Nullabschlusszeichen. | ||
|
DT_NSTRING | Mit NULL abgeschlossene Zeichenfolge im NCHAR-Zeichensatz. Diese Variable zeigt auf einen Bereich, der bis zu 32766 Byte plus das Nullabschlusszeichen speichern kann. | ||
|
DT_VARCHAR | Zeichenfolge variabler Länge im CHAR-Zeichensatz mit einem 2-Byte-Längenfeld. Nicht mit NULL abgeschlossene oder mit Leerzeichen aufgefüllte Zeichenfolge. Der Maximalwert für n ist 32765 (Byte). | ||
|
DT_NVARCHAR | Zeichenfolge variabler Länge im NCHAR-Zeichensatz mit einem 2-Byte-Längenfeld. Nicht mit NULL abgeschlossene oder mit Leerzeichen aufgefüllte Zeichenfolge. Der Maximalwert für n ist 32765 (Byte). | ||
|
DT_LONGVARCHAR | Zeichenfolge variabler Länge im CHAR-Zeichensatz mit drei 4-Byte-Längenfeldern. Nicht mit NULL abgeschlossene oder mit Leerzeichen aufgefüllte Zeichenfolge. | ||
|
DT_LONGNVARCHAR | Zeichenfolge variabler Länge im NCHAR-Zeichensatz mit drei 4-Byte-Längenfeldern. Nicht mit NULL abgeschlossene oder mit Leerzeichen aufgefüllte Zeichenfolge. | ||
|
DT_BINARY | Zeichenfolge mit variabler Länge mit 2-Byte-Längenfeld. Der Maximalwert für n ist 32765 (Byte). | ||
|
DT_LONGBINARY | Lange Binärdaten von variabler Länge mit drei 4-Byte-Längenfeldern. | ||
|
DT_FIXCHAR | Zeichenfolge von fester Länge in CHAR-Zeichensatz. Mit Leerzeichen aufgefüllt, aber ohne Nullabschlusszeichen. Der Maximalwert für n ist 32767 (Byte). | ||
|
DT_NFIXCHAR | Zeichenfolge von fester Länge in NCHAR-Zeichensatz. Mit Leerzeichen aufgefüllt, aber ohne Nullabschlusszeichen. Der Maximalwert für n ist 32767 (Byte). | ||
|
DT_TIMESTAMP_STRUCT | SQLDATETIME-Struktur |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |