Länge der Übertragungsoktette
Die Übertragungs oktettlänge einer Spalte ist die maximale Anzahl von Bytes, die an die Anwendung zurückgegeben werden, wenn Daten in den Standarddatentyp C übertragen werden. Bei Zeichendaten enthält das Übertragungsoktett keinen Leerraum für das NULL-Terminierungszeichen. Die Übertragungs oktettlänge einer Spalte kann sich von der Anzahl der Bytes unterscheiden, die zum Speichern der Daten in der Datenquelle erforderlich sind.
Die für jeden ODBC SQL-Datentyp definierte Übertragungs oktettlänge ist in der folgenden Tabelle dargestellt.
SQL-Typbezeichner | Länge |
---|---|
Alle Zeichentypen[a] | Die definierte oder die maximale Länge (für variablen Typ) der Spalte in Byte. Dies ist der gleiche Wert wie das Deskriptorfeld SQL_DESC_OCTET_LENGTH. |
SQL_DECIMAL SQL_NUMERIC |
Die Anzahl der Bytes, die erforderlich sind, um die Zeichendarstellung dieser Daten zu enthalten, wenn der Zeichensatz ANSI ist, und doppelt so viele, wenn der Zeichensatz UNICODE ist. Dies ist die maximale Anzahl von Ziffern plus zwei, da die Daten als Zeichenfolge zurückgegeben werden und Zeichen für die Ziffern, ein Zeichen und ein Dezimaltrennzeichen benötigt werden. Beispielsweise beträgt die Übertragungslänge einer spalte, die als NUMERIC(10,3) definiert ist, 12. |
SQL_TINYINT | 1 |
SQL_SMALLINT | 2 |
SQL_INTEGER | 4 |
SQL_BIGINT | 8 |
SQL_REAL | 4 |
SQL_FLOAT | 8 |
SQL_DOUBLE | 8 |
SQL_BIT | 1 |
Alle Binärtypen[a] | Die Anzahl der Bytes, die erforderlich sind, um die definierte (für feste Typen) oder die maximale Anzahl von Zeichen (für Variablentypen) zu enthalten. |
SQL_TYPE_DATE SQL_TYPE_TIME |
6 (die Größe der SQL_DATE_STRUCT- oder SQL_TIME_STRUCT-Struktur). |
SQL_TYPE_TIMESTAMP | 16 (die Größe der SQL_TIMESTAMP_STRUCT-Struktur). |
Alle Intervalldatentypen | 34 (die Größe der Intervallstruktur). |
SQL_GUID | 16 (die Größe der GUID-Struktur). |
[a] Wenn der Treiber die Spalten- oder Parameterlänge für Variablentypen nicht bestimmen kann, gibt er SQL_NO_TOTAL zurück.