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 驅動程式開發。