15.6.2 HADB ODBCドライバをODBC2.xアプリケーションで使用する場合の注意事項
環境ハンドルのSQL_ATTR_ODBC_VERSION属性にSQL_OV_ODBC2を指定した場合,ここで説明する項目については,HADB ODBCドライバはODBC2.x規格に従って動作します。
(1) SQLSTATEについて
オープングループおよびISOの規格に合わせて,ODBC3.xで幾つかのSQLSTATEが変更されています。HADB ODBCドライバは,次のマッピング表に従ってODBC2.xのSQLSTATEを返却します。SQLSTATEについては,マニュアルHADB メッセージのSQLSTATEの一覧を参照してください。
項番 |
ODBC3.x |
ODBC2.x |
---|---|---|
1 |
07005 |
24000 |
2 |
07009※ |
S1002 |
3 |
S1093 |
|
4 |
22007 |
22008 |
5 |
22018 |
22005 |
6 |
HY001 |
S1001 |
7 |
HY003 |
S1003 |
8 |
HY004 |
S1004 |
9 |
HY007 |
S1010 |
10 |
HY009 |
S1009 |
11 |
HY010 |
S1010 |
12 |
HY011 |
S1011 |
13 |
HY024 |
S1009 |
14 |
HY090 |
S1090 |
15 |
HY091 |
S1091 |
16 |
HY092 |
S1092 |
17 |
HY096 |
S1096 |
18 |
HY100 |
S1100 |
19 |
HY104 |
S1104 |
20 |
HY105 |
S1105 |
21 |
HYC00 |
S1C00 |
- 注※
-
SQLSTATEが07009の場合,1対1のマッピングになりません。マッピングは次の表に従ってください。
項番 |
SQLSTATE 07009を返却する関数 |
SQL_OV_ODBC2指定時のSQLSTATE 07009のマッピング先のSQLSTATE |
---|---|---|
1 |
SQLBindParameter |
S1093 |
2 |
SQLColAttribute |
S1002 |
3 |
SQLDescribeCol |
07009 |
4 |
SQLDescribeParam |
S1093 |
5 |
SQLFetch |
S1002 |
6 |
SQLGetData |
S1002 |
7 |
SQLGetDescField |
07009 |
8 |
SQLGetDescRec |
07009 |
9 |
SQLSetDescRec |
07009 |
10 |
SQLSetDescField |
07009 |
(2) SQL_NO_DATAの戻り値について
次のどれかのODBC関数を呼び出して,DELETE文またはUPDATE文を実行した際に,対象となる行がないときは,SQL_SUCCESSが返却されます。SQL_NO_DATAは返却されません。
-
SQLExecDirect
-
SQLExecute
-
SQLParamData
(3) SQLGetInfoの返却値について
環境ハンドルのSQL_ATTR_ODBC_VERSIONの指定値によって,SQL_ALTER_TABLEへの返却値が次のように異なります。
-
SQL_ATTR_ODBC_VERSIONにSQL_OV_ODBC3を指定した場合
SQL_ALTER_TABLEには,SQL_AT_ADD_COLUMN_SINGLEが返却されます。
-
SQL_ATTR_ODBC_VERSIONにSQL_OV_ODBC2を指定した場合
SQL_ALTER_TABLEには,SQL_AT_ADD_COLUMNが返却されます。