連線屬性是連線的特性。 例如,由於交易發生在連接層級,交易隔離層級是一個連線屬性。 同樣地,登入逾時,即在嘗試連線超過一定秒數後中止,也是一種連線屬性。
連線屬性由 SQLSetConnectAttr 設定,目前設定則由 SQLGetConnectAttr 取得。 若在驅動程式載入前呼叫 SQLSetConnectAttr ,驅動程式管理器會將屬性儲存在其連接結構中,並在連接過程中設定於驅動程式中。 應用程式不要求設定任何連線屬性;所有連線屬性都有預設值,其中部分是驅動程式專屬的。
連線屬性可以設定在連線前或連線後,或任一設定,視屬性與驅動程式而定。 登入逾時(SQL_ATTR_LOGIN_TIMEOUT)適用於連線過程,且只有在連線前設定時才有效。 是否使用 ODBC 游標函式庫(SQL_ATTR_ODBC_CURSORS)及網路封包大小(SQL_ATTR_PACKET_SIZE)的屬性必須在連接前設定,因為 ODBC 游標函式庫位於驅動程式管理器與驅動程式之間,因此必須先載入驅動程式。
指定資料來源是唯讀還是可讀寫(SQL_ATTR_ACCESS_MODE)及目前目錄(SQL_ATTR_CURRENT_CATALOG)的屬性,可依驅動程式在連接前或連接後設定。 然而,互通的應用程式會在連接前設定這些設定,因為部分驅動程式不支援連線後更改這些設定。
有些連線屬性在建立連線前就有預設值,而有些則沒有。 這些屬性包括SQL_ATTR_ACCESS_MODE、SQL_ATTR_AUTOCOMMIT、SQL_ATTR_LOGIN_TIMEOUT、SQL_ATTR_ODBC_CURSORS、SQL_ATTR_TRACE和SQL_ATTR_TRACEFILE。
連接後必須設定翻譯連接屬性(SQL_ATTR_TRANSLATE_DLL 和 SQL_ATTR_TRANSLATE_OPTION)。
其他所有連線屬性都可以隨時設定。 欲了解更多資訊,請參閱 SQLSetConnectAttr 函式描述。 (連線屬性無法透過呼叫 SQLSetEnvAttr 在環境層級設定。)