次の方法で共有


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

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

SQL 型

identifier
SQL data

value
C 型

identifier
バッファー

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 無視 1234.56 該当なし
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 該当なし
SQL_DOUBLE 1.2345678 SQL_C_FLOAT 無視 1.234567 該当なし
SQL_DOUBLE 1.2345678 SQL_C_STINYINT 無視 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 無視 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" は null 終端バイトを表します。 ドライバーは常にデータSQL_C_CHAR null 終了します。

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