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

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - Programmierung » Embedded SQL » Der SQL-Deskriptor-Bereich (SQLDA) » SQLDA sqllen-Feldwerte

 

SQLDA sqllen-Feldwerte nach einem DESCRIBE

Mit der DESCRIBE-Anweisung erhalten Sie Informationen zu den Hostvariablen, die zum Speichern von Daten erforderlich sind, die von der Datenbank abgerufen wurden, oder zu Hostvariablen, die zum Übergeben von Daten an die Datenbank erforderlich sind.

Die folgende Tabelle zeigt die Werte der Strukturelemente sqllen und sqltype, die die DESCRIBE-Anweisung für verschiedene Datenbanktypen zurückgibt (sowohl SELECT LIST als auch BIND VARIABLE DESCRIBE-Anweisungen). Bei einem benutzerdefinierten Datenbank-Datentyp wird der zu Grunde liegende Datentyp beschrieben.

Ihr Programm kann entweder die Typen und Längen verwenden, die DESCRIBE zurückgibt, oder es kann andere Typen verwenden. Der Datenbankserver wird jede erforderliche Typkonvertierung durchführen. Der Speicherbereich, auf den das sqldata-Feld zeigt, muss mit den Feldern sqltype und sqllen übereinstimmen. Der Embedded SQL-Typ wird durch eine bitweise AND-Verknüpfung von sqltype und DT_TYPES (sqltype & DT_TYPES) erhalten.

Datenbank-Feldtyp Zurückgegebener Embedded SQL-Typ Von DESCRIBE zurückgegebene Länge (in Byte)
BIGINT DT_BIGINT 8
BINARY(n) DT_BINARY n
BIT DT_BIT 1
CHAR(n) DT_FIXCHAR1 n-mal die maximale Datenerweiterung bei der Konvertierung vom Datenbankzeichensatz in den CHAR-Zeichensatz des Clients. Wenn diese Länge mehr als 32767 Byte beträgt, dann wird der Embedded SQL-Typ DT_LONGVARCHAR mit einer Länge von 32767 Byte zurückgegeben.
CHAR(n CHAR) DT_FIXCHAR1 n-mal die maximale Zeichenlänge im CHAR-Zeichensatz des Clients. Wenn diese Länge mehr als 32767 Byte beträgt, dann wird der Embedded SQL-Typ DT_LONGVARCHAR mit einer Länge von 32767 Byte zurückgegeben.
DATE DT_DATE Die Länge der längsten formatierten Zeichenfolge
DECIMAL(p,s) DT_DECIMAL Das low byte des Längenfelds im SQLDA-Bereich auf p setzen, das high byte auf s. Siehe PRECISION- und SCALE-Makros in sqlda.h.
DOUBLE DT_DOUBLE 8
FLOAT DT_FLOAT 4
INT DT_INT 4
LONG BINARY DT_LONGBINARY 32767
LONG NVARCHAR DT_LONGVARCHAR / DT_LONGNVARCHAR2 32767
LONG VARCHAR DT_LONGVARCHAR 32767
NCHAR(n) DT_FIXCHAR / DT_NFIXCHAR2 n-mal die maximale Zeichenlänge im NCHAR-Zeichensatz des Clients. Wenn diese Länge mehr als 32767 Byte beträgt, dann wird der Embedded SQL-Typ DT_LONGNVARCHAR mit einer Länge von 32767 Byte zurückgegeben.
NVARCHAR(n) DT_VARCHAR / DT_NVARCHAR2 n-mal die maximale Zeichenlänge im NCHAR-Zeichensatz des Clients. Wenn diese Länge mehr als 32767 Byte beträgt, dann wird der Embedded SQL-Typ DT_LONGNVARCHAR mit einer Länge von 32767 Byte zurückgegeben.
REAL DT_FLOAT 4
SMALLINT DT_SMALLINT 2
TIME DT_TIME Die Länge der längsten formatierten Zeichenfolge
TIMESTAMP DT_TIMESTAMP Die Länge der längsten formatierten Zeichenfolge
TINYINT DT_TINYINT 1
UNSIGNED BIGINT DT_UNSBIGINT 8
UNSIGNED INT DT_UNSINT 4
UNSIGNED SMALLINT DT_UNSSMALLINT 2
VARCHAR(n) DT_VARCHAR1 n-mal die maximale Datenerweiterung bei der Konvertierung vom Datenbankzeichensatz in den CHAR-Zeichensatz des Clients. Wenn diese Länge mehr als 32767 Byte beträgt, dann wird der Embedded SQL-Typ DT_LONGVARCHAR mit einer Länge von 32767 Byte zurückgegeben.
VARCHAR(n CHAR) DT_VARCHAR1 n-mal die maximale Zeichenlänge im CHAR-Zeichensatz des Clients. Wenn diese Länge mehr als 32767 beträgt, dann wird der Embedded SQL-Typ DT_LONGVARCHAR mit der Länge 32767 zurückgegeben.

1 Der zurückgegebene Typ für CHAR und VARCHAR kann DT_LONGVARCHAR sein, wenn die maximale Bytelänge im CHAR-Zeichensatz des Clients größer als 32767 Byte ist.

2 Der für NCHAR und NVARCHAR zurückgegebene Typ kann DT_LONGNVARCHAR sein, wenn die maximale Bytelänge im NCHAR-Zeichensatz des Clients größer als 32767 Byte ist. NCHAR, NVARCHAR und LONG NVARCHAR werden standardmäßig als DT_FIXCHAR, DT_VARCHAR oder DT_LONGVARCHAR beschrieben. Wenn die Funktion db_change_nchar_charset aufgerufen wurde, werden die Typen als DT_NFIXCHAR, DT_NVARCHAR bzw. DT_LONGNVARCHAR beschrieben.

 Siehe auch