分享方式:


SQL 到 C 資料轉換範例

下表所示的範例說明驅動程式如何將 SQL 資料轉換成 C 資料:

SQL 類型

identifier
SQL 資料

value
C 類型

identifier
緩衝區

length
*TargetValuePtr SQLSTATE
SQL_CHAR abcdef SQL_C_CHAR 7 abcdef\0[a] n/a
SQL_CHAR abcdef SQL_C_CHAR 6 abcde\0[a] 01004
SQL_DECIMAL 1234.56 SQL_C_CHAR 8 1234.56\0[a] n/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 忽略 1234.56 n/a
SQL_DECIMAL 1234.56 SQL_C_SSHORT 忽略 1234 01S07
SQL_DECIMAL 1234.56 SQL_C_STINYINT 忽略 ---- 22003
SQL_DOUBLE 1.2345678 SQL_C_DOUBLE 忽略 1.2345678 n/a
SQL_DOUBLE 1.2345678 SQL_C_FLOAT 忽略 1.234567 n/a
SQL_DOUBLE 1.2345678 SQL_C_STINYINT 忽略 1 n/a
SQL_TYPE_DATE 1992-12-31 SQL_C_CHAR 11 1992-12-31\0[a] n/a
SQL_TYPE_DATE 1992-12-31 SQL_C_CHAR 10 ----- 22003
SQL_TYPE_DATE 1992-12-31 SQL_C_TIMESTAMP 忽略 1992,12,31, 0,0,0,0[b] n/a
SQL_TYPE_TIMESTAMP 1992-12-31 23:45:55.12 SQL_C_CHAR 23 1992-12-31 23:45:55.12\0[a] n/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」 代表 Null 終止位元組。 驅動程式一律會以 null 終止SQL_C_CHAR資料。

[b] 此清單中的數位是儲存在TIMESTAMP_STRUCT結構的欄位中的數位。