SQLSetConnectAttrForDbcInfo 函式

符合性
推出版本:ODBC 3.81 標準合規:ODBC

總結
SQLSetConnectAttrForDbcInfoSQLSetConnectAttr 相同,但它將屬性設定在連線資訊標記上,而非連接句柄。

Syntax

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

論點

hDbcInfoToken
[輸入]令牌名稱。

Attribute
[輸入]屬性到集合。 有效屬性清單是針對驅動程式的,且與 SQLSetConnectAttr 相同。

ValuePtr
[輸入]指向要與 屬性相關聯的值。 根據 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。

Returns

SQL_SUCCESS、SQL_SUCCESS_WITH_INFO、SQL_ERROR或SQL_INVALID_HANDLE。

Diagnostics

SQLSetConnectAttr 相同,但驅動管理員會使用 SQL_HANDLE_DBC_INFO_TOKEN 的 HandleTypehDbcInfoTokenHandle

備註

SQLSetConnectAttrForDbcInfoSQLSetConnectAttr 相同,但它將屬性設定在連線資訊標記上,而非連接句柄。 例如,如果 SQLSetConnectAttr 無法辨識某個屬性, SQLSetConnectAttrForDbcInfo 也應該會回傳該屬性的 SQL_ERROR。

每當驅動返回SQL_ERROR或SQL_INVALID_HANDLE時,應忽略此屬性以計算池ID。 此外,驅動程式管理器會從 hDbcInfoToken 取得診斷資訊,並將SQL_SUCCESS_WITH_INFO回傳給應用程式,包含 SQLConnectSQLDriverConnect。 因此,應用程式可以擷取為何某些屬性無法設定的詳細資訊。

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

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