Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Bezeichner für die ODBC SQL-Datentypen des Zeichens sind die folgenden:
- SQL_CHAR
- SQL_VARCHAR
- SQL_LONGVARCHAR
- SQL_WCHAR
- SQL_WVARCHAR
- SQL_WLONGVARCHAR
Die folgende Tabelle zeigt die ODBC C-Datentypen, in die SQL-Zeichendaten konvertiert werden können. Eine Erklärung der Spalten und Begriffe in der Tabelle finden Sie unter Konvertieren von Daten aus SQL in C-Datentypen.
| C-Typbezeichner | Test | TargetValuePtr | StrLen_or_IndPtr | SQLSTATE |
|---|---|---|---|---|
| SQL_C_CHAR | Bytelänge der Daten <bufferLength Bytelänge von Daten >= BufferLength |
Daten Abgeschnittene Daten |
Länge der Daten in Bytes Länge der Daten in Bytes |
– 01004 |
| SQL_C_WCHAR | Zeichenlänge von Daten <BufferLength Zeichenlänge von Daten >= BufferLength |
Daten Abgeschnittene Daten |
Länge der Daten in Zeichen Länge der Daten in Zeichen |
– 01004 |
| SQL_C_STINYINT SQL_C_UTINYINT SQL_C_TINYINT SQL_C_SBIGINT SQL_C_UBIGINT SQL_C_SSHORT SQL_C_USHORT SQL_C_SHORT SQL_C_SLONG SQL_C_ULONG SQL_C_LONG SQL_C_NUMERIC | Konvertierte Daten ohne Abschneiden[b] Konvertierte Daten mit Abschneiden von Bruchstellen[a] Die Konvertierung von Daten würde zum Verlust ganzer (im Gegensatz zu bruchbehafteten) Ziffern führen[a] Daten sind kein numerisches Literal[b] |
Daten Abgeschnittene Daten Nicht definiert Nicht definiert |
Anzahl der Bytes des Datentyps C Anzahl der Bytes des Datentyps C Nicht definiert Nicht definiert |
– 01S07 22003 22018 |
| SQL_C_FLOAT SQL_C_DOUBLE | Daten liegen innerhalb des Bereichs des Datentyps, in den die Zahl konvertiert wird[a] Daten liegen außerhalb des Bereichs des Datentyps, in den die Zahl konvertiert wird[a] Daten sind kein numerisches Literal[b] |
Daten Nicht definiert Nicht definiert |
Größe des Datentyps C Nicht definiert Nicht definiert |
– 22003 22018 |
| SQL_C_BIT | Daten sind 0 oder 1 Daten sind größer als 0, kleiner als 2 und nicht gleich 1 Daten sind kleiner als 0 oder größer als oder gleich 2 Daten sind kein numerisches Literal |
Daten Abgeschnittene Daten Nicht definiert Nicht definiert |
1[b] 1[b] Nicht definiert Nicht definiert |
– 01S07 22003 22018 |
| SQL_C_BINARY | Bytelänge von Daten <= BufferLength Bytelänge der Daten >bufferLength |
Daten Abgeschnittene Daten |
Länge der Daten in Bytes Datenlänge |
– 01004 |
| SQL_C_TYPE_DATE | Der Datenwert ist ein gültiger Datum-Wert[a] Der Datenwert ist ein gültiger Zeitstempelwert. Zeitanteil ist 0[a] Der Datenwert ist ein gültiger Zeitstempelwert. Der Zeitteil ist nichtzero[a],[c] Der Datenwert ist kein gültiger Datumswert oder Zeitstempelwert[a] |
Daten Daten Abgeschnittene Daten Nicht definiert |
6[b] 6[b] 6[b] Nicht definiert |
– – 01S07 22018 |
| SQL_C_TYPE_TIME | Der Datenwert ist ein gültiger Zeitwert, und der Sekundenbruchwert ist 0[a] Der Datenwert ist ein gültiger Zeitstempelwert oder ein gültiger Zeitwert. Sekundenbruchteile sind null[a],[d] Der Datenwert ist ein gültiger Zeitstempelwert. Sekundenbruchteil ist nichtzero[a],[d],[e] Der Datenwert ist kein gültiger Zeit- oder Zeitstempelwert[a] |
Daten Daten Abgeschnittene Daten Nicht definiert |
6[b] 6[b] 6[b] Nicht definiert |
– – 01S07 22018 |
| SQL_C_TYPE_TIMESTAMP | Der Datenwert ist ein gültiger Zeitstempelwert oder ein gültiger Zeitwert. Sekundenbruchteile nicht abgeschnitten[a] Der Datenwert ist ein gültiger Zeitstempelwert oder ein gültiger Zeitwert. Sekundenbruchteile abgeschnitten[a] Der Datenwert ist ein gültiger Datum-Wert[a] Der Datenwert ist ein gültiger Zeitwert[a] Der Datenwert ist kein gültiger Datums-,Zeit- oder Zeitstempelwert[a] |
Daten Abgeschnittene Daten Daten[f] Daten[g] Nicht definiert |
16[b] 16[b] 16[b] 16[b] Nicht definiert |
– 01S07 – – 22018 |
| Alle C-Intervalltypen | Der Datenwert ist ein gültiger Intervallwert. keine Abschneidung Der Datenwert ist ein gültiger Intervallwert. Abschneiden eines oder mehrerer nachgestellter Felder Daten sind ein gültiges Intervall; Führende Feldgenauigkeit geht verloren Der Datenwert ist kein gültiger Intervallwert. |
Daten Abgeschnittene Daten Nicht definiert Nicht definiert |
Länge der Daten in Bytes Länge der Daten in Bytes Nicht definiert Nicht definiert |
– 01S07 22015 22018 |
[a] Der Wert von BufferLength wird für diese Konvertierung ignoriert. Der Treiber geht davon aus, dass die Größe von *TargetValuePtr der Größe des C-Datentyps entspricht.
[b] Dies ist die Größe des entsprechenden C-Datentyps.
[c] Der Zeitteil des Zeitstempelwerts wird abgeschnitten.
[d] Der Datumsteil des Zeitstempelwerts wird ignoriert.
[e] Der Sekundenbruchteil des Zeitstempels wird abgeschnitten.
[f] Die Zeitfelder der Zeitstempelstruktur sind auf 0 festgelegt.
[g] Die Datumsfelder der Zeitstempelstruktur sind auf das aktuelle Datum festgelegt.
Zusätzliche Leerzeichen
Führende und nachfolgende Leerzeichen werden ignoriert, wenn SQL-Zeichendaten in einen der folgenden Typen konvertiert werden:
- date
- NUMERIC
- time
- timestamp
- Intervall C-Daten