Freigeben über


Beispiele für die Datenkonvertierung von SQL zu C

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

SQL-Typ

Bezeichner
SQL data

value
C-Typ

Bezeichner
Buffer

length
*TargetValuePtr SQLSTATE
SQL_CHAR abcdef SQL_C_CHAR 7 abcdef\0[a]
SQL_CHAR abcdef SQL_C_CHAR 6 abcde\0[a] 01004
SQL_DECIMAL 1234.56 SQL_C_CHAR 8 1234.56\0[a]
SQL_DECIMAL 1234.56 SQL_C_CHAR 5 1234\0[a] 01004
SQL_DECIMAL 1234.56 SQL_C_CHAR 4 ---- 22003
SQL_DECIMAL 1234.56 SQL_C_FLOAT wird ignoriert. 1234.56
SQL_DECIMAL 1234.56 SQL_C_SSHORT wird ignoriert. 1234 01S07
SQL_DECIMAL 1234.56 SQL_C_STINYINT wird ignoriert. ---- 22003
SQL_DOUBLE 1.2345678 SQL_C_DOUBLE wird ignoriert. 1.2345678
SQL_DOUBLE 1.2345678 SQL_C_FLOAT wird ignoriert. 1.234567
SQL_DOUBLE 1.2345678 SQL_C_STINYINT wird ignoriert. 1
SQL_TYPE_DATE 1992-12-31 SQL_C_CHAR 11 1992-12-31\0[a]
SQL_TYPE_DATE 1992-12-31 SQL_C_CHAR 10 ----- 22003
SQL_TYPE_DATE 1992-12-31 SQL_C_TIMESTAMP wird ignoriert. 1992,12,31, 0,0,0,0[b]
SQL_TYPE_TIMESTAMP 1992-12-31 23:45:55.12 SQL_C_CHAR 23 1992-12-31 23:45:55.12\0[a]
SQL_TYPE_TIMESTAMP 1992-12-31 23:45:55.12 SQL_C_CHAR 22 1992-12-31 23:45:55.1\0[a] 01004
SQL_TYPE_TIMESTAMP 1992-12-31 23:45:55.12 SQL_C_CHAR 18 ---- 22003

[a] "\0" stellt ein Byte mit NULL-Beendigung dar. Der Treiber beendet immer null SQL_C_CHAR Daten.

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