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 結構的欄位中的數位。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應