SQLSetConnectAttrForDbcInfo 関数

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

まとめ
SQLSetConnectAttrForDbcInfoSQLSetConnectAttr と同じですが、接続ハンドルではなく接続情報トークンに 属性を設定します。

構文

  
SQLRETURN  SQLSetConnectAttrForDbcInfo(  
                SQLHDBC_INFO_TOKEN    hDbcInfoToken,  
                SQLINTEGER            Attribute,  
                SQLPOINTER            ValuePtr,  
                SQLINTEGER            StringLength );  

引数

hDbcInfoToken
[入力]トークン ハンドル。

属性
[入力]設定する属性。 有効な属性の一覧はドライバー固有であり、 SQLSetConnectAttr の場合と同じです。

ValuePtr
[入力] Attribute に関連付ける値へのポインター。 Attribute の値に応じて、ValuePtr は 32 ビット符号なし整数値であるか、null で終わる文字列を指します。 Attribute 引数がドライバー固有の値の場合、ValuePtr の値は符号付き整数である可能性があることに注意してください。

StringLength
[入力] Attribute が ODBC 定義の属性で 、ValuePtr が文字列またはバイナリ バッファーを指している場合、この引数は *ValuePtr の長さである必要があります。 文字列データの場合、この引数には文字列内のバイト数を含める必要があります。

Attribute が ODBC 定義の属性で、ValuePtr が整数の場合、StringLength は無視されます。

Attribute がドライバー定義の属性の場合、アプリケーションは StringLength 引数を設定して、ドライバー マネージャーに属性の性質を示します。 StringLength には、次の値を指定できます。

  • ValuePtr が文字列へのポインターである場合、StringLength は文字列またはSQL_NTSの長さになります。

  • ValuePtr がバイナリ バッファーへのポインターである場合、アプリケーションは SQL_LEN_BINARY_ATTR(length) マクロの結果を StringLength に配置します。 これにより、 StringLength に負の値が配置されます。

  • ValuePtr が文字列またはバイナリ文字列以外の値へのポインターである場合、StringLength には値SQL_IS_POINTER必要があります。

  • ValuePtr に固定長値が含まれている場合、StringLength は必要に応じてSQL_IS_INTEGERまたはSQL_IS_UINTEGERのいずれかになります。

戻り値

SQL_SUCCESS、SQL_SUCCESS_WITH_INFO、SQL_ERROR、またはSQL_INVALID_HANDLE。

診断

SQLSetConnectAttr と同じですが、ドライバー マネージャーは、SQL_HANDLE_DBC_INFO_TOKENの HandleTypehDbcInfoTokenハンドルを使用します。

解説

SQLSetConnectAttrForDbcInfoSQLSetConnectAttr と同じですが、接続ハンドルではなく、接続情報トークンに 属性を設定します。 たとえば、 SQLSetConnectAttr が属性を認識しない場合、 SQLSetConnectAttrForDbcInfo は、その属性のSQL_ERRORも返す必要があります。

ドライバーがSQL_ERRORまたはSQL_INVALID_HANDLEを返すたびに、ドライバーはこの属性を無視してプール ID を計算する必要があります。 また、ドライバー マネージャーは hDbcInfoToken から診断情報を取得し、SQLConnect と SQLDriverConnect でアプリケーションにSQL_SUCCESS_WITH_INFOを返します。 そのため、アプリケーションは、一部の属性を設定できない理由に関する詳細を取得できます。

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

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

参照

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