Share via


Spaltengröße

Die Spaltengröße (oder der Parameter) von numerischen Datentypen wird als maximale Anzahl von Ziffern definiert, die vom Datentyp der Spalte oder des Parameters verwendet werden, oder die Genauigkeit der Daten. Bei Zeichentypen ist dies die Länge in den Zeichen der Daten. bei binären Datentypen wird die Spaltengröße als Länge der Daten in Bytes definiert. Für die Datentypen time, timestamp und alle Intervalldaten ist dies die Anzahl der Zeichen in der Zeichendarstellung dieser Daten. Die für jeden präzisen SQL-Datentyp definierte Spaltengröße wird in der folgenden Tabelle angezeigt.

SQL-Typbezeichner Spaltengröße
Alle Zeichentypen[a],[b] Die definierte oder maximale Spaltengröße in Zeichen der Spalte oder des Parameters (wie im SQL_DESC_LENGTH Deskriptorfeld enthalten). Beispielsweise beträgt die Spaltengröße einer Spalte mit einem Einzelbytezeichen, die als CHAR(10) definiert ist, 10.
SQL_DECIMAL SQL_NUMERIC Die definierte Anzahl von Ziffern. Beispielsweise beträgt die Genauigkeit einer Spalte, die als NUMERIC(10,3) definiert ist, 10.
SQL_BIT[c] 1
SQL_TINYINT[c] 3
SQL_SMALLINT[c] 5
SQL_INTEGER[c] 10
SQL_BIGINT[c] 19 (wenn signiert) oder 20 (wenn nicht signiert)
SQL_REAL[c] 7
SQL_FLOAT[c] 15
SQL_DOUBLE[c] 15
Alle Binärtypen[a],[b] Die definierte oder maximale Länge der Spalte oder des Parameters in Byte. Beispielsweise ist die Länge einer Spalte, die als BINARY(10) definiert ist, 10.
SQL_TYPE_DATE[c] 10 (die Anzahl der Zeichen im Format jjjj-mm-tt ).
SQL_TYPE_TIME[c] 8 (die Anzahl der Zeichen im Format hh-mm-ss ) oder 9 + s (die Anzahl der Zeichen im Format hh:mm:ss[.fff...], wobei s die Sekundengenauigkeit ist).
SQL_TYPE_TIMESTAMP 16 (die Anzahl der Zeichen im Format jjjj-mm-tt hh:mm )

19 (die Anzahl der Zeichen im Format jjjj-mm-tthh:mm:ss )

oder

20 + s (die Anzahl der Zeichen im Format jjjj-mm-tt hh:mm:ss[.fff...], wobei s die Sekundengenauigkeit ist).
SQL_INTERVAL_SECOND Dabei steht p für die Intervallführungsgenauigkeit und s für die Sekundengenauigkeit , p (wenn s=0) oder p+s+1 (wenn s>0).[ d]
SQL_INTERVAL_DAY_TO_SECOND Dabei steht p für dieIntervallführungsgenauigkeit und s für die Sekundengenauigkeit, 9+p (wenn s=0) oder 10+p+ s (wenn s>0).[ d]
SQL_INTERVAL_HOUR_TO_SECOND Dabei steht p für die intervallführende Genauigkeit und s für die Sekundengenauigkeit, 6+p (wenn s=0) oder 7+p+s (wenn s>0).[ d]
SQL_INTERVAL_MINUTE_TO_SECOND Dabei steht p für die intervallführende Genauigkeit und s für die Sekundengenauigkeit, 3+p (wenn s=0) oder 4+p+s (wenn s>0).[ d]
SQL_INTERVAL_YEAR SQL_INTERVAL_MONTH SQL_INTERVAL_DAY SQL_INTERVAL_HOUR SQL_INTERVAL_MINUTE p, wobei p die intervallführende Genauigkeit ist. [d]
SQL_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_DAY_TO_HOUR 3+p, wobei p die intervallführende Genauigkeit ist. [d]
SQL_INTERVAL_DAY_TO_MINUTE 6+p, wobei p die intervallführende Genauigkeit ist. [d]
SQL_INTERVAL_HOUR_TO_MINUTE 3+p, wobei p die intervallführende Genauigkeit ist. [d]
SQL_GUID 36 (die Anzahl der Zeichen im Format aaaaaaaa-bbbb-cccc-dddd-eeeeeeee-

[a] Für eine ODBC 1.0-Anwendung, die SQLSetParam in einem ODBC 2.0-Treiber aufruft, und für eine ODBC 2.0-Anwendung, die SQLBindParameter in einem ODBC 1.0-Treiber aufruft, muss ColumnSize auf die Gesamtlänge der zu sendenden Daten festgelegt werden, wenn *StrLen_or_IndPtr für einen SQL_LONGVARCHAR- oder SQL_LONGVARBINARY-Typ SQL_DATA_AT_EXEC ist. nicht die in dieser Tabelle definierte Genauigkeit.

[b] Wenn der Treiber die Spalten- oder Parameterlänge für einen Variablentyp nicht bestimmen kann, gibt er SQL_NO_TOTAL zurück.

[c] Das ColumnSize-Argument von SQLBindParameter wird für diesen Datentyp ignoriert.

[d] Allgemeine Regeln zur Spaltenlänge in Intervalldatentypen finden Sie weiter oben in diesem Anhang unter Intervalldatentyplänge.

Die für die Spaltengröße (oder den Parameter) zurückgegebenen Werte entsprechen nicht den Werten in einem Deskriptorfeld. Die Werte können je nach Datentyp entweder aus dem feld SQL_DESC_PRECISION oder SQL_DESC_LENGTH stammen, wie in der folgenden Tabelle gezeigt.

SQL-Typ Deskriptorfeld entspricht

Spalten- oder Parametergröße
Alle Zeichen- und Binärtypen LENGTH
Alle numerischen Typen PRECISION
Alle datetime- und interval-Typen LENGTH
SQL_BIT LENGTH