DBResultSetクラスのGetFieldメソッド,DBPreparedStatement,DBCallableStatementクラスのGetParamメソッドで取得するデータの,データ型変換規則を表7-7,及び表7-8に示します。
表7-7 GetField,GetParamメソッドでのデータ型変換規則(1)
DBMS データ型 | 取得するデータ型 | |||
---|---|---|---|---|
INT16 | INT32 | UINT16 | UINT32 | |
COL_CTYPE_INT16 | (B) | (A) | (C) | (A) |
COL_CTYPE_INT32 | (B) | ○ | (C) | (A) |
COL_CTYPE_UINT16 | (B) | (A) | (C) | (A) |
COL_CTYPE_UINT32 | (B) | (A) | (C) | ○ |
COL_CTYPE_SINGLE | (B) | (A) | (C) | (A) |
COL_CTYPE_DOUBLE | (B) | (A) | (C) | (A) |
COL_CTYPE_BOOLEAN | (B) | (A) | (C) | (A) |
COL_CTYPE_CHAR | f(atol)[B] | f(atol)[A] | f(strtoul) [C] | f(strtoul) [A] |
COL_CTYPE_DATETIME | × | × | × | × |
COL_CTYPE_BINARY | × | × | × | × |
表7-8 GetField,GetParamメソッドでのデータ型変換規則(2)
DBMS データ型 | 取得するデータ型 | |||||
---|---|---|---|---|---|---|
SINGLE | DOUBLE | BOOLEAN | LPTSTR | DATE | BINARY | |
COL_CTYPE_INT16 | (D) | (A) | (E) | H:f(ltoa) AL:f(sprintf) W:f(_ltoa) | × | × |
COL_CTYPE_INT32 | (D) | (A) | (E) | H:f(ltoa) AL:f(sprintf) W:f(_ltoa) | × | × |
COL_CTYPE_UINT16 | (D) | (A) | (E) | H:f(ultoa) AL:f(sprintf) W:f(_ultoa) | × | × |
COL_CTYPE_UINT32 | (D) | (A) | (E) | H:f(ultoa) AL:f(sprintf) W:f(_ultoa) | × | × |
COL_CTYPE_SINGLE | (D) | (A) | (E) | H:f(gcvt) AL:f(gcvt) W:f(_gcvt) | × | × |
COL_CTYPE_DOUBLE | (D) | ○ | (E) | H:f(gcvt) AL:f(gcvt) W:f(_gcvt) | × | × |
COL_CTYPE_BOOLEAN | (D) | (A) | (A) | ※1 | × | × |
COL_CTYPE_CHAR | f(atof)[D] | f(atof) [A] | f(atof) [E] | ○ | × | ※2 |
COL_CTYPE_DATETIME | × | × | × | × | ○ | × |
COL_CTYPE_BINARY | × | × | × | × | × | ○ |
DBCallableStatement,DBPreparedStatementクラスのSetParamメソッドで指定したデータがどのように変換されて,実際に設定されるのか,そのデータ型変換規則を表7-9に示します。
表7-9 SetParamメソッドでのデータ型変換規則
設定データ型 | 変換規則 |
---|---|
INT16 | そのまま設定 |
UINT16 | INT16にキャストして設定 |
INT32 | そのまま設定 |
UINT32 | INT32にキャストして設定 |
SINGLE | そのまま設定 |
DOUBLE | そのまま設定 |
BOOLEAN | INT16にキャストして設定 |
LPCTSTR | そのまま設定(ただし,NULLポインタの場合は欠損値を設定) |
DBR_DATETIME | DBMSの内部データ形式に変換して設定 |
DBR_BINARY | そのまま設定 |
DBResultSetクラスのSetFieldメソッドで設定するデータの,データ型変換規則を表7-10,及び表7-11に示します。
表7-10 SetFieldメソッドでのデータ型変換規則(1)
DBMS データ型 | 設定するデータ型 | |||
---|---|---|---|---|
INT16 | INT32 | UINT16 | UINT32 | |
COL_CTYPE_INT16 | ○ | (INT16) | (INT16) | (INT16) |
COL_CTYPE_INT32 | (INT32) | ○ | (INT32) | (INT32) |
COL_CTYPE_UINT16 | ※1 | ※1 | ※1 | ※1 |
COL_CTYPE_UINT32 | ※1 | ※1 | ※1 | ※1 |
COL_CTYPE_SINGLE | (SINGLE) | (SINGLE) | (SINGLE) | (SINGLE) |
COL_CTYPE_DOUBLE | (DOUBLE) | (DOUBLE) | (DOUBLE) | (DOUBLE) |
COL_CTYPE_BOOLEAN | ※1 | ※1 | ※1 | ※1 |
COL_CTYPE_CHAR | H:f(ltoa) AL:f(sprintf) W:f(_ltoa) | H:f(ltoa) AL:f(sprintf) W:f(_ltoa) | H:f(ultoa) AL:f(sprintf) W:f(_ultoa) | H:f(ultoa) AL:f(sprintf) W:f(_ultoa) |
COL_CTYPE_DATETIME | × | × | × | × |
COL_CTYPE_BINARY | × | × | × | × |
表7-11 SetFieldメソッドでのデータ型変換規則(2)
DBMS データ型 | 設定するデータ型 | |||||
---|---|---|---|---|---|---|
SINGLE | DOUBLE | BOOLEAN | LPTSTR | DATE | BINARY | |
COL_CTYPE _INT16 | (INT16) | (INT16) | (INT16) | (INT16) f(atol) | × | × |
COL_CTYPE _INT32 | (INT32) | (INT32) | (INT32) | (INT32) f(atol) | × | × |
COL_CTYPE _UINT16 | ※1 | ※1 | ※1 | ※1 | ※1 | ※1 |
COL_CTYPE _UINT32 | ※1 | ※1 | ※1 | ※1 | ※1 | ※1 |
COL_CTYPE _SINGLE | ○ | (SINGLE) | (SINGLE) | (SINGLE) f(atof) | × | × |
COL_CTYPE _DOUBLE | (DOUBLE) | ○ | (DOUBLE) | (DOUBLE) f(atof) | × | × |
COL_CTYPE _BOOLEAN | ※1 | ※1 | ※1 | ※1 | ※1 | ※1 |
COL_CTYPE _CHAR | H:f(gcvt) AL:f(gcvt) W:f(_gcvt) | H::f(gcvt) AL:f(gcvt) W:f(_gcvt) | ※2 | ○ | × | ※3 |
COL_CTYPE _DATETIME | × | × | × | × | ○※4 | × |
COL_CTYPE _BINARY | × | × | × | × | × | ○ |