16.3.2 SQLConnect,SQLConnectW
- 〈この項の構成〉
(1) 機能
HADB ODBCドライバとデータソース(HADBサーバ)の接続を確立します。
なお,SQLConnectまたはSQLConnectWを実行するにはCONNECT権限が必要です。
(2) 形式
-
SQLConnectの場合
SQLRETURN SQLConnect ( SQLHDBC ConnectionHandle, /* In */ SQLCHAR * ServerName, /* In */ SQLSMALLINT NameLength1, /* In */ SQLCHAR * UserName, /* In */ SQLSMALLINT NameLength2, /* In */ SQLCHAR * Authentication, /* In */ SQLSMALLINT NameLength3 /* In */ )
-
SQLConnectWの場合
SQLRETURN SQLConnectW ( SQLHDBC ConnectionHandle, /* In */ SQLWCHAR * ServerName, /* In */ SQLSMALLINT NameLength1, /* In */ SQLWCHAR * UserName, /* In */ SQLSMALLINT NameLength2, /* In */ SQLWCHAR * Authentication, /* In */ SQLSMALLINT NameLength3 /* In */ )
(3) 引数
- ConnectionHandle:
-
コネクションハンドルを指定します。
- ServerName:
-
データソース名を指定します。
- NameLength1:
-
データソース名の長さ※を指定します。
データソース名がNULL終端文字で終わる場合は,SQL_NTSを指定する必要があります。
また,0や負の値を指定した場合は,エラーとなります。
- UserName:
-
HADBサーバに接続するユーザID(認可識別子)を指定します。
- NameLength2:
-
ユーザIDの長さ※を指定します。
ユーザIDがNULL終端文字で終わる場合は,SQL_NTSを指定する必要があります。
また,0や負の値を指定した場合は,エラーとなります。
- Authentication:
-
HADBサーバに接続する認可識別子のパスワードを指定します。NULLを指定した場合は,エラーとなります。
ODBC実装規約によって,パスワードには,[,],{,},(,),,,;,?,*,=,!,@の13種類の文字は含めないことを推奨します。HADBのパスワードについては,マニュアルHADB システム構築・運用ガイドのパスワードの指定規則を参照してください。
- NameLength3:
-
パスワードの長さ※を指定します。
パスワードがNULL終端文字で終わる場合は,SQL_NTSを指定する必要があります。
負の値または256以上の値を指定した場合は,エラーとなります。
また,Authenticationに256バイト以上の文字列を指定し,かつ,この引数にSQL_NTSを指定した場合は,エラーとなります。
- 注※
-
長さの単位は,SQLConnectの場合はバイト長,SQLConnectWの場合は文字数となります。
(4) 戻り値
SQL_SUCCESS,SQL_ERROR,またはSQL_INVALID_HANDLEが返されます。
(5) SQLSTATE
この関数では次のSQLSTATEを返します。
SQLSTATE |
説明 |
備考 |
返却 |
---|---|---|---|
01000 |
一般警告 |
− |
× |
01S02 |
オプション値の変更 |
× |
|
08001 |
クライアントが接続を確立できない |
× |
|
08002 |
接続名が使用中である |
○ |
|
08004 |
サーバが接続を拒否した |
× |
|
08S01 |
通信リンク失敗 |
× |
|
28000 |
無効な認証指定 |
○ |
|
5C002 |
文字コードの変換エラー |
変換できない文字コードを検出しました。 |
○ |
5C052 |
バージョン不一致エラー |
ODBCドライバとHADBクライアントのバージョンが異なります。 |
○ |
5D001 |
HADB固有のエラー |
HADBでエラーが発生しましたが,固有のSQLSTATEまたはエラーメッセージが取得できません。 |
○ |
HY000 |
一般エラー |
− |
× |
HY001 |
メモリ割り当てエラー |
× |
|
HY010 |
関数シーケンスエラー |
○ |
|
HY013 |
メモリ管理エラー |
× |
|
HY090 |
無効な文字列長または無効なバッファ長 |
○ |
|
HYT00 |
タイムアウト終了 |
× |
|
HYT01 |
接続タイムアウト終了 |
× |
|
IM001 |
ドライバはこの関数をサポートしていない |
× |
|
IM002 |
データソースが見つからない かつ デフォルトのドライバが指定されていない |
× |
|
IM003 |
指定されたドライバがロードできない |
× |
|
IM004 |
ドライバがSQL_HANDLE_ENVに対するSQLAllocHandleに失敗した |
× |
|
IM005 |
ドライバがSQL_HANDLE_DBCに対するSQLAllocHandleに失敗した |
× |
|
IM006 |
ドライバがSQLSetConnectAttrまたはSQLSetConnectAttrWに失敗した |
× |
|
IM009 |
トランスレータDLLをロードできない |
× |
|
IM010 |
データソース名が長過ぎる |
× |
- (凡例)
-
○:HADB ODBCドライバが返すことがあるSQLSTATEです。
×:HADB ODBCドライバが返さないSQLSTATEです。
−:なし。