Teilen über


C zu SQL: numerisch

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.