16.5.1 SQLSetConnectAttr,SQLSetConnectAttrW
(1) 機能
接続属性を設定します。
(2) 形式
-
SQLSetConnectAttrの場合
SQLRETURN SQLSetConnectAttr ( SQLHDBC ConnectionHandle, /* In */ SQLINTEGER Attribute, /* In */ SQLPOINTER ValuePtr, /* In */ SQLINTEGER StringLength /* In */ )
-
SQLSetConnectAttrWの場合
SQLRETURN SQLSetConnectAttrW ( SQLHDBC ConnectionHandle, /* In */ SQLINTEGER Attribute, /* In */ SQLPOINTER ValuePtr, /* In */ SQLINTEGER StringLength /* In */ )
(3) 引数
- ConnectionHandle:
-
属性を設定する接続の接続ハンドルを指定します。
- Attribute:
-
設定する接続属性を指定します。指定できる属性については,「16.14 SQLSetConnectAttr,SQLSetConnectAttrW,SQLGetConnectAttrおよびSQLGetConnectAttrWに指定できる属性」を参照してください。
- ValuePtr:
-
Attributeで関連づけられた値を指すポインタまたは32ビット整数値を指定します。指定できる値については,「16.14 SQLSetConnectAttr,SQLSetConnectAttrW,SQLGetConnectAttrおよびSQLGetConnectAttrWに指定できる属性」を参照してください。
- StringLength:
-
*ValuePtrの長さを指定します(単位:バイト長)。ValuePtrが整数の場合,この引数の指定は無視されます。
ValuePtrが文字列へのポインタである場合,文字列の長さ(単位:バイト長)またはSQL_NTSを指定します。
(4) 戻り値
SQL_SUCCESS,SQL_SUCCESS_WITH_INFO,SQL_ERROR,またはSQL_INVALID_HANDLEが返されます。
(5) SQLSTATE
この関数では次のSQLSTATEを返します。
SQLSTATE |
説明 |
備考 |
返却 |
---|---|---|---|
01000 |
一般警告 |
− |
× |
01S02 |
オプション値の変更 |
○ |
|
08002 |
接続名が使用中である |
× |
|
08003 |
接続が存在しない |
× |
|
08S01 |
通信リンク失敗 |
× |
|
24000 |
無効なカーソル状態 |
× |
|
25000 |
ローカルトランザクション中の不正な操作 |
× |
|
3D000 |
無効なカタログ名 |
× |
|
HY000 |
一般エラー |
× |
|
HY001 |
メモリ割り当てエラー |
× |
|
HY008 |
動作がキャンセルされた |
× |
|
HY009 |
NULLポインタの不正使用 |
× |
|
HY010 |
関数シーケンスエラー |
× |
|
HY011 |
ここでは属性を設定できない |
○ |
|
HY013 |
メモリ管理エラー |
× |
|
HY024 |
無効な属性値 |
○ |
|
HY090 |
無効な文字列長または無効なバッファ長 |
次の条件をすべて満たしています。
|
○ |
HY092 |
無効な属性識別子,または無効なオプション識別子 |
− |
○ |
HY114 |
ドライバは接続レベルの非同期実行をサポートしていない |
× |
|
HY117 |
接続がサスペンド中 |
× |
|
HY121 |
カーソルライブラリとドライバ依存のコネクションプーリングは同時実行できない |
× |
|
HYC00 |
オプション機能は実装されていない |
指定されたAttributeは,規格にはありますがサポートしていません。 |
○ |
HYT01 |
接続タイムアウト終了 |
− |
× |
IM001 |
ドライバはこの関数をサポートしていない |
× |
|
IM009 |
トランスレータDLLをロードできない |
× |
|
IM017 |
非同期ポーリングが不正 |
× |
|
IM018 |
非同期実行が未完了 |
× |
|
S1118 |
ドライバは非同期通知をサポートしていない |
× |
- (凡例)
-
○:HADB ODBCドライバが返すことがあるSQLSTATEです。
×:HADB ODBCドライバが返さないSQLSTATEです。
−:なし。
(6) 注意事項
-
ODBC規約に存在しないHADB独自のAttributeを指定する場合は,adbodb.hをincludeしてください。
-
この関数で指定するトランザクションアクセスモード(属性はSQL_ATTR_ACCESS_MODE)は,次の表に示す優先順位に従って決まります(優先順位の番号が小さいほど,優先順位が高くなります)。
表16‒5 トランザクションアクセスモードの優先順位 優先順位
トランザクションアクセスモードの指定個所
1
SQLSetConnectAttrまたはSQLSetConnectAttrWの指定
2
クライアント定義のadb_clt_trn_access_modeオペランドの指定