SQLSetConnectOption 對應
當 ODBC 2 時。 x 應用程式透過 ODBC 3*.x* 驅動程式呼叫 SQLSetConnectOption ,呼叫
SQLSetConnectOption(hdbc, fOption, vParam)
將會產生下列結果:
如果 fOption 指出需要字串的 ODBC 定義連接屬性,驅動程式管理員會呼叫
SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, SQL_NTS)
如果 fOption 指出傳回 32 位整數值的 ODBC 定義連接屬性,驅動程式管理員會呼叫
SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, 0)
如果 fOption 指出驅動程式定義的連接屬性,驅動程式管理員會呼叫
SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, BufferLength)
在上述三種情況下,ConnectionHandle 引數會設定為 hdbc 中的 值、 Attribute 引數設定為 fOption 中的 值,而 ValuePtr 引數會設定為與 vParam 相同的值 。
因為驅動程式管理員不知道驅動程式定義的連接屬性是否需要字串或 32 位整數值,所以它必須傳入 SQLSetConnectAttr 的 BufferLength 引數 的有效值 。 如果驅動程式已定義驅動程式定義連接屬性的特殊語意,而且需要使用 SQLSetConnectOption 呼叫 ,則必須支援 SQLSetConnectOption 。
如果為 ODBC 2。 x 應用程式會呼叫 SQLSetConnectOption ,以在 ODBC 3*.x* 驅動程式中設定驅動程式特定語句選項,而且選項是在 ODBC 2 中定義。 x 版本的驅動程式,應該為 ODBC 3*.x* 驅動程式中的 選項定義新的資訊清單常數。 如果在呼叫 SQLSetConnectOption 時使用舊的資訊清單常數,Driver Manager 會呼叫 SQLSetConnectAttr ,並將 StringLength 引數設定為 0。
對於 ODBC 3*.x* 驅動程式,驅動程式管理員不會再檢查 fOption 是否 位於 SQL_CONN_OPT_MIN 與 SQL_CONN_OPT_MAX 之間,或大於 SQL_CONNECT_OPT_DRVR_START。
設定連接層級的語句選項
在 ODBC 2 中。 x ,應用程式可以呼叫 SQLSetConnectOption 來設定語句選項。 完成時,驅動程式會將 語句選項建立為針對該連接稍後配置的任何語句的預設值。 驅動程式定義驅動程式是否為與指定連接相關聯的任何現有語句設定語句選項。
ODBC 3*.x* 中已淘汰這項功能。 ODBC 3*.x* 驅動程式只需要支援設定 ODBC 2。 如果連接層級想要使用 ODBC 2,則為 x 語句屬性。 執行此動作的 x 應用程式。 ODBC 3*.x* 應用程式不應該在連接層級設定語句屬性。 ODBC 3*.x* 語句屬性不能在連接層級設定,但SQL_ATTR_METADATA_ID和SQL_ATTR_ASYNC_ENABLE屬性除外,這些屬性都是連接屬性和語句屬性,而且可以在連接層級或語句層級設定。