SQLSetConnectAttrForDbcInfo 函式

一致性
引進的版本:ODBC 3.81 標準合規性: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 HandleType

備註

SQLSetConnectAttrForDbcInfo SQLSetConnectAttr 相同,但它會在連接資訊權杖上設定 屬性,而不是在連接控制碼上設定屬性。 例如,如果 SQLSetConnectAttr 無法辨識屬性, SQLSetConnectAttrForDbcInfo 也應該傳回該屬性的SQL_ERROR。

每當驅動程式傳回SQL_ERROR或SQL_INVALID_HANDLE時,驅動程式應該忽略這個屬性來計算集區識別碼。 此外,驅動程式管理員會從 hDbcInfoToken 取得診斷資訊,並將SQL_SUCCESS_WITH_INFO傳回 SQLConnect 和 SQLDriverConnect 中的 應用程式。 因此,應用程式可以擷取為何無法設定某些屬性的詳細資料。

應用程式不應該直接呼叫此函式。 支援驅動程式感知連接共用的 ODBC 驅動程式必須實作此函式。

包含 sqlspi.h 以進行 ODBC 驅動程式開發。

另請參閱

開發 ODBC 驅動程式
可感知驅動程式的連接共用
在 ODBC 驅動程式中開發連線集區覺察