C から SQL へのデータ変換の例

次の例は、ドライバーが C データを SQL データに変換する方法を示しています。

C 型識別子 C データ値 SQL 型

identifier


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, 120000000[d] SQL_CHAR 22 1992-12-31 23:45:55.12 該当なし
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 終端バイトを表します。 null 終端バイトは、データの長さがSQL_NTS場合にのみ必要です。

[b] 数値のバイトに加えて、符号には 1 バイトが必要で、小数点には別のバイトが必要です。

[c] このリストの数値は、SQL_DATE_STRUCT構造体のフィールドに格納されている数値です。

[d] このリストの数値は、SQL_TIMESTAMP_STRUCT構造体のフィールドに格納されている数値です。