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.
Hinweise zu Embedded SQL-Datentypen finden Sie unter Datentypen in Embedded SQL.
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_FIXCHAR2 | 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_FIXCHAR2 | 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 high byte des Längenfelds im SQLDA-Bereich auf p setzen, das low byte auf s. |
DOUBLE | DT_DOUBLE | 8 |
FLOAT | DT_FLOAT | 4 |
INT | DT_INT | 4 |
LONG BINARY | DT_LONGBINARY | 32767 |
LONG NVARCHAR | DT_LONGNVARCHAR1 | 32767 |
LONG VARCHAR | DT_LONGVARCHAR | 32767 |
NCHAR(n) | DT_NFIXCHAR1 | 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_NVARCHAR1 | 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_VARCHAR2 | 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_VARCHAR(2) | 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 für NCHAR und NVARCHAR zurückgegebenen Typ kann DT_LONGNVARCHAR sein, wenn die maximale Bytelänge im NCHAR-Zeichensatz des Clients größer als 32767 Byte ist. Beispiele dafür, welche Ergebnisse zurückgegeben werden, wenn eine DESCRIBE durchgeführt wird, finden Sie unter NCHAR-Datentyp und NVARCHAR-Datentyp.
In Embedded SQL werden NCHAR, NVARCHAR und LONG NVARCHAR standardmäßig als DT_FIXCHAR, DT_VARCHAR bzw. 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 db_change_nchar_charset-Funktion.
2 Der zurückgegebene Typ kann DT_LONGVARCHAR sein, wenn die maximale Bytelänge im CHAR Zeichensatz des Clients größer als 32767 Byte ist. Beispiele dafür, welche Ergebnisse zurückgegeben werden, wenn eine DESCRIBE durchgeführt wird, finden Sie unter CHAR-Datentyp und VARCHAR-Datentyp.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |