C 到 SQL 資料轉換範例

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

C 類型識別碼 C 資料值 SQL 類型

identifier
資料行

length
SQL 資料

value
SQLSTATE
SQL_C_CHAR abcdef\0[a] SQL_CHAR 6 abcdef n/a
SQL_C_CHAR abcdef\0[a] SQL_CHAR 5 abcde 22001
SQL_C_CHAR 1234.56\0[a] SQL_DECIMAL 8[b] 1234.56 n/a
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 n/a 1234.56 n/a
SQL_C_FLOAT 1234.56 SQL_INTEGER n/a 1234 22001
SQL_C_FLOAT 1234.56 SQL_TINYINT n/a ---- 22003
SQL_C_TYPE_DATE 1992,12,31[c] SQL_CHAR 10 1992-12-31 n/a
SQL_C_TYPE_DATE 1992,12,31[c] SQL_CHAR 9 ---- 22003
SQL_C_TYPE_DATE 1992,12,31[c] SQL_TIMESTAMP n/a 1992-12-31 00:00:00.0 n/a
SQL_C_TYPE_TIMESTAMP 1992,12,31, 23,45,55, 120000000[d] SQL_CHAR 22 1992-12-31 23:45:55.12 n/a
SQL_C_TYPE_TIMESTAMP 1992,12,31, 23,45,55, 120000000[d] SQL_CHAR 21 1992-12-31 23:45:55.1 22001
SQL_C_TYPE_TIMESTAMP 1992,12,31, 23,45,55, 120000000[d] SQL_CHAR 18 ---- 22003

[a] 「\0」 代表 Null 終止位元組。 只有在資料長度SQL_NTS時,才需要 null 終止位元組。

[b] 除了數位的位元組之外,符號還需要一個位元組,小數點還需要另一個位元組。

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

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