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 numerischen ODBC C-Datentypen sind:
SQL_C_STINYINT
SQL_C_SLONG
SQL_C_UTINYINT
SQL_C_ULONG
SQL_C_TINYINT
SQL_C_LONG
SQL_C_SSHORT
SQL_C_FLOAT
SQL_C_USHORT
SQL_C_DOUBLE
SQL_C_SHORT
SQL_C_NUMERIC
SQL_C_SBIGINT
SQL_C_UBIGINT
Die folgende Tabelle zeigt die ODBC SQL-Datentypen, in die numerische C-Daten konvertiert werden können. Eine Erläuterung der Spalten und Begriffe in der Tabelle finden Sie unter Konvertieren von Daten aus C in SQL-Datentypen.
| SQL-Typbezeichner | Test | SQLSTATE |
|---|---|---|
| SQL_CHAR SQL_VARCHAR SQL_LONGVARCHAR |
Anzahl der Ziffern <= Spaltenbytelänge Anzahl der Ziffern > Spaltenbytelänge |
– 22001 |
| SQL_WCHAR SQL_WVARCHAR SQL_WLONGVARCHAR |
Anzahl von Zeichen <= Spaltenzeichenlänge Anzahl der Zeichen > Spaltenzeichenlänge |
– 22001 |
| SQL_DECIMAL[b] SQL_NUMERIC[b] SQL_TINYINT[b] SQL_SMALLINT[b] SQL_INTEGER[b] SQL_BIGINT[b] |
Konvertierte Daten ohne Abschneiden oder mit abgeschnittenen Bruchstellen Konvertierte Daten mit Abschneiden ganzer Ziffern |
– 22003 |
| SQL_REAL SQL_FLOAT SQL_DOUBLE |
Daten liegen innerhalb des Bereichs des Datentyps, in den die Zahl konvertiert wird. Daten liegen außerhalb des Bereichs des Datentyps, in den die Zahl konvertiert wird. |
– 22003 |
| SQL_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 |
– 22001 22003 |
| SQL_INTERVAL_YEAR[a] SQL_INTERVAL_MONTH[a] SQL_INTERVAL_DAY[a] SQL_INTERVAL_HOUR[a] SQL_INTERVAL_MINUTE[a] SQL_INTERVAL_SECOND[a] |
Daten werden nicht abgeschnitten. Daten abgeschnitten. |
– 22015 |
[a] Diese Konvertierungen werden nur für die genauen numerischen Datentypen (SQL_C_STINYINT, SQL_C_UTINYINT, SQL_C_SSHORT, SQL_C_USHORT, SQL_C_SLONG, SQL_C_ULONG oder SQL_C_NUMERIC) unterstützt. Sie werden für die ungefähren numerischen Datentypen (SQL_C_FLOAT oder SQL_C_DOUBLE) nicht unterstützt. Exakte numerische C-Datentypen können nicht in einen Intervall-SQL-Typ konvertiert werden, dessen Intervallgenauigkeit kein einzelnes Feld ist.
[b] Für den "n/a"-Fall kann ein Treiber optional SQL_SUCCESS_WITH_INFO und 01S07 zurückgeben, wenn eine Bruchabkürzung vorliegt.
Der Treiber ignoriert den Längen-/Indikatorwert beim Konvertieren von Daten aus den numerischen C-Datentypen und geht davon aus, dass die Größe des Datenpuffers der Größe des numerischen C-Datentyps entspricht. Der Längen-/Indikatorwert wird im StrLen_or_Ind-Argument in SQLPutData und im Puffer übergeben, der mit dem Argument StrLen_or_IndPtr in SQLBindParameter angegeben ist. Der Datenpuffer wird mit dem DataPtr-Argument in SQLPutData und dem ParameterValuePtr-Argument in SQLBindParameter angegeben.