SQLSetConnectAttrForDbcInfo 関数
準拠
導入されたバージョン: ODBC 3.81 Standards Compliance: ODBC
まとめ
SQLSetConnectAttrForDbcInfo は SQLSetConnectAttr と同じですが、接続ハンドルではなく接続情報トークンに 属性を設定します。
構文
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の HandleType と hDbcInfoToken のハンドルを使用します。
解説
SQLSetConnectAttrForDbcInfo は SQLSetConnectAttr と同じですが、接続ハンドルではなく、接続情報トークンに 属性を設定します。 たとえば、 SQLSetConnectAttr が属性を認識しない場合、 SQLSetConnectAttrForDbcInfo は、その属性のSQL_ERRORも返す必要があります。
ドライバーがSQL_ERRORまたはSQL_INVALID_HANDLEを返すたびに、ドライバーはこの属性を無視してプール ID を計算する必要があります。 また、ドライバー マネージャーは hDbcInfoToken から診断情報を取得し、SQLConnect と SQLDriverConnect でアプリケーションにSQL_SUCCESS_WITH_INFOを返します。 そのため、アプリケーションは、一部の属性を設定できない理由に関する詳細を取得できます。
アプリケーションでは、この関数を直接呼び出さないでください。 ドライバー対応の接続プールをサポートする ODBC ドライバーは、この関数を実装する必要があります。
ODBC ドライバー開発に sqlspi.h を含めます。