Teilen über


Beispiele für die Datenkonvertierung von C zu SQL

Die folgenden Beispiele veranschaulichen, wie der Treiber C-Daten in SQL-Daten konvertiert:

C-Typbezeichner C-Datenwert SQL-Typ

Bezeichner
Column

length
SQL data

value
SQLSTATE
SQL_C_CHAR abcdef\0[a] SQL_CHAR 6 abcdef
SQL_C_CHAR abcdef\0[a] SQL_CHAR 5 Abcde 22001
SQL_C_CHAR 1234.56\0[a] SQL_DECIMAL 8[b] 1234.56
SQL_C_CHAR 1234.56\0[a] SQL_DECIMAL 7[b] 1234.5 22001
SQL_C_CHAR 1234.56\0[a] SQL_DECIMAL 4 ---- 22003
SQL_C_FLOAT 1234.56 SQL_FLOAT 1234.56
SQL_C_FLOAT 1234.56 SQL_INTEGER 1234 22001
SQL_C_FLOAT 1234.56 SQL_TINYINT ---- 22003
SQL_C_TYPE_DATE 1992,12,31[c] SQL_CHAR 10 1992-12-31
SQL_C_TYPE_DATE 1992,12,31[c] SQL_CHAR 9 ---- 22003
SQL_C_TYPE_DATE 1992,12,31[c] SQL_TIMESTAMP 1992-12-31 00:00:00.0
SQL_C_TYPE_TIMESTAMP 1992,12,31, 23,45,55, 1200000000[d] SQL_CHAR 22 1992-12-31 23:45:55.12
SQL_C_TYPE_TIMESTAMP 1992,12,31, 23,45,55, 1200000000[d] SQL_CHAR 21 1992-12-31 23:45:55.1 22001
SQL_C_TYPE_TIMESTAMP 1992,12,31, 23,45,55, 1200000000[d] SQL_CHAR 18 ---- 22003

[a] "\0" stellt ein NULL-Terminierungsbyte dar. Das NULL-Terminierungsbyte ist nur erforderlich, wenn die Länge der Daten SQL_NTS ist.

[b] Zusätzlich zu Bytes für Zahlen ist ein Byte für ein Zeichen und ein weiteres Byte für das Dezimalzeichen erforderlich.

[c] Die Zahlen in dieser Liste sind die Zahlen, die in den Feldern der SQL_DATE_STRUCT-Struktur gespeichert sind.

[d] Die Zahlen in dieser Liste sind die Zahlen, die in den Feldern der SQL_TIMESTAMP_STRUCT-Struktur gespeichert sind.