SQLPoolConnect 関数

準拠
導入されたバージョン: ODBC 3.8 Standards Compliance: ODBC

まとめ
プール内の接続を再利用できない場合は、SQLPoolConnect を使用して新しい接続を作成します。

構文

  
SQLRETURN  SQLPoolConnect(  
                SQLHDBC              hDbc,  
                SQLHDBC_INFO_TOKEN   hDbcInfoToken,  
                WCHAR *              wszOutConnectString,  
                SQLSMALLINT          cchConnectStringBuffer,  
                SQLSMALLINT *        cchConnectStringLen );  

引数

Hdbc
[入力]接続ハンドル。

hDbcInfoToken
[入力]新しいアプリケーション接続要求のトークン ハンドル。

wszOutConnectString
[出力]完了した接続文字列のバッファーへのポインター。 ターゲット データ ソースへの接続が成功すると、このバッファーには完了した接続文字列が含まれます。 アプリケーションでは、このバッファーに少なくとも 1,024 文字を割り当てる必要があります。

wszOutConnectString が NULL の場合でも、cchConnectStringLenwszOutConnectString が指すバッファーで返すことができる文字数の合計 (文字データの null 終端文字を除く) を返します。

cchConnectStringBuffer
[入力]*wszOutConnectString バッファーの長さ (文字数)。

cchConnectStringLen
[出力]*wszOutConnectString で返すことができる合計文字数 (null 終端文字を除く) を返すバッファーへのポインター。 返すことができる文字数が cchConnectStringBuffer 以上の場合、*wszOutConnectString 内の完了した接続文字列は 、cchConnectStringBuffer から null 終端文字の長さを引いた値に切り捨てられます。

戻り値

SQL_SUCCESS、SQL_SUCCESS_WITH_INFO、SQL_ERROR、または SQL_INVALID_HANDLE。

診断

入力検証エラーの SQLDriverConnect に似ていますが、ドライバー マネージャーで handleType のSQL_HANDLE_DBC_INFO_TOKENとハンドル hDbcInfoToken が使用される点が除きます。

解説

ドライバー マネージャーは、hDbc と hDbcInfoToken の親 HENV ハンドルが同じであることを保証します。

SQLDriverConnect とは異なり、接続情報の入力をユーザーに求める DriverCompletion 引数はありません。 プーリング シナリオでは、プロンプト ダイアログは許可されません。

アプリケーションでは、この関数を直接呼び出さないでください。 ドライバー対応接続プールをサポートする ODBC ドライバーは、この関数を実装する必要があります。

ドライバーがSQL_ERRORまたはSQL_INVALID_HANDLEを返すたびに、ドライバー マネージャーはアプリケーションにエラーを返します ( SQLConnect または SQLDriverConnect)。

ドライバーがSQL_SUCCESS_WITH_INFOを返すたびに、ドライバー マネージャーは hDbcInfoToken から診断情報を取得し、 SQLConnect とSQLDriverConnect でアプリケーションにSQL_SUCCESS_WITH_INFOを返します。

アプリケーションで SQLConnect を使用する場合、 wszOutConnectString は NULL バッファーになります (最後の 3 つのパラメーターはすべて NULL、0、NULL に設定されます)。 それ以外の場合、ドライバーは、アプリケーションの SQLDriverConnect 関数 呼び出しに返される出力接続文字列を返す必要があります。

ODBC ドライバー開発用に sqlspi.h を含めます。

参照

ODBC ドライバーの開発
ドライバー対応接続プール
ODBC ドライバー対応接続プールの開発