符合性
推出版本:ODBC 3.81 標準合規:ODBC
總結
SQLSetConnectAttrForDbcInfo 與 SQLSetConnectAttr 相同,但它將屬性設定在連線資訊標記上,而非連接句柄。
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 的 HandleType 與 hDbcInfoToken 的 Handle。
備註
SQLSetConnectAttrForDbcInfo 與 SQLSetConnectAttr 相同,但它將屬性設定在連線資訊標記上,而非連接句柄。 例如,如果 SQLSetConnectAttr 無法辨識某個屬性, SQLSetConnectAttrForDbcInfo 也應該會回傳該屬性的 SQL_ERROR。
每當驅動返回SQL_ERROR或SQL_INVALID_HANDLE時,應忽略此屬性以計算池ID。 此外,驅動程式管理器會從 hDbcInfoToken 取得診斷資訊,並將SQL_SUCCESS_WITH_INFO回傳給應用程式,包含 SQLConnect 與 SQLDriverConnect。 因此,應用程式可以擷取為何某些屬性無法設定的詳細資訊。
應用程式不應直接呼叫此函式。 支援驅動程式感知連線池的 ODBC 驅動程式必須實作此功能。
請包含 sqlspi.h 以開發 ODBC 驅動程式。