DABroker for C++
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 |
× | × | × | × | × | ○ |
All Rights Reserved. Copyright (C) 1998, 2015, Hitachi, Ltd.