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 oder der Genauigkeit der Daten verwendet werden. Bei Zeichentypen ist dies die Länge in Zeichen der Daten; bei binären Datentypen wird die Spaltengröße als Länge in Byte der Daten definiert. Für die Zeit, den Zeitstempel und alle Intervalldatentypen 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 Feld SQL_DESC_LENGTH Deskriptor enthalten). Die Spaltengröße einer als CHAR(10) definierten Ein-Byte-Zeichenspalte ist z. B. 10. |
SQL_DECIMAL SQL_NUMERIC | Die definierte Anzahl von Ziffern. Beispielsweise ist 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 in Bytes der Spalte oder des Parameters. 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 hh-mm-ss-Format ) oder 9 + s (die Anzahl der Zeichen im hh:mm:ss[.fff...]-Format, 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-tt hh:mm:ss ) or 20 + s (die Anzahl der Zeichen im yyyy-mm-tt hh:mm:ss[.fff...] Format, wobei s die Sekundengenauigkeit ist). |
SQL_INTERVAL_SECOND | Dabei ist p die genauigkeitsführende Intervall und s die Sekundengenauigkeit, p (wenn s=0) oder p+s+1 (wenn s>0).[ d] |
SQL_INTERVAL_DAY_TO_SECOND | Ist p die Intervallpräzision und s die Sekundengenauigkeit, 9+p (wenn s=0) oder 10+p+s (wenn s>0).[ d] |
SQL_INTERVAL_HOUR_TO_SECOND | Dabei ist p die Intervallpräzision und s die Sekundengenauigkeit, 6+p (wenn s=0) oder 7+p+s (wenn s>0).[ d] |
SQL_INTERVAL_MINUTE_TO_SECOND | Dabei ist p die Intervallpräzision und s 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 das Intervall ist, das die führende Genauigkeit des Intervalls ist.[ d] |
SQL_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_DAY_TO_HOUR | 3+p, wobei p die Intervallp führende Genauigkeit ist.[ d] |
SQL_INTERVAL_DAY_TO_MINUTE | 6+p, wobei p die Intervallp-führende Genauigkeit ist.[ d] |
SQL_INTERVAL_HOUR_TO_MINUTE | 3+p, wobei p die Intervallp führende Genauigkeit ist.[ d] |
SQL_GUID | 36 (die Anzahl der Zeichen im Format aaaaaa-bbbb-cccc-dddd-eeee) |
[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 Genauigkeit, die in dieser Tabelle definiert ist.
[b] Wenn der Treiber die Spalten- oder Parameterlänge für einen Variablentyp nicht bestimmen kann, wird SQL_NO_TOTAL zurückgegeben.
[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 Einzelnen Deskriptorfeld. Die Werte können entweder aus dem SQL_DESC_PRECISION- oder dem feld SQL_DESC_LENGTH stammen, je nach Datentyp, wie in der folgenden Tabelle dargestellt.
SQL-Typ | Deskriptorfeld entsprechend Spalten- oder Parametergröße |
---|---|
Alle Zeichen- und Binärtypen | LENGTH |
Alle numerischen Typen | PRECISION |
Alle Datums- und Intervalltypen | LENGTH |
SQL_BIT | LENGTH |