ISO 選項的作用

ODBC 標準與 ISO 標準相當接近,而且 ODBC 應用程式應該是來自 ODBC 驅動程式的標準行為。 若要讓此行為更為符合 ODBC 標準中所定義的行為,SQL Server Native Client ODBC 驅動程式一律會使用所連接之 SQL Server 版本中提供的任何 ISO 選項。

當 SQL Server Native Client ODBC 驅動程式連接到 SQL Server 的執行個體時,伺服器會偵測到用戶端使用的是 SQL Server Native Client ODBC 驅動程式,並將數個選項設定為開啟。

驅動程式本身會發出這些陳述式;ODBC 應用程式不用做任何事情就可以要求它們。 設定這些選項可以使用驅動程式,讓 ODBC 應用程式更容易攜帶,因為伺服器行為會符合 ISO 標準。

以 DB-Library 為基礎的應用程式一般不會開啟這些選項。 執行相同的 SQL 陳述式時觀察 ODBC 或 DB-Library 用戶端間不同行為的網站,不應該假設這一點為 SQL Server Native Client ODBC 驅動程式的問題。 它們應該先使用與 SQL Server Native Client ODBC 驅動程式所使用的相同 SET 選項,在 DB-Library 環境中傳回陳述式。

由於使用者和應用程式可以隨時開啟和關閉 SET 選項,因此,預存程序和觸發程序的開發人員也應該在開啟和關閉以上列出的 SET 選項時,小心測試其程序和觸發程序。 無論特定連接叫用程序或觸發程序時已經設定哪些選項,這都可以確保程序和觸發程序能正常運作。 對於需要為這些選項的其中之一進行特定設定的觸發程序或預存程序,應該在觸發程序或預存程序開始時發出 SET 陳述式。 此 SET 陳述式只有在執行觸發程序或預存程序時才有效,當程序或觸發程序結束時,就會還原原始的設定。

連接到 SQL Server 的執行個體時,也會將第四個 SET 選項,也就是 CONCAT_NULL_YIELDS_NULL,設定為開啟。 如果在資料來源或者 SQLDriverConnectSQLBrowseConnect 上指定 AnsiNPW=NO,SQL Server Native Client ODBC 驅動程式不會將這些選項設定為開啟。

如同先前所說明的 ISO 選項,如果在資料來源或者 SQLDriverConnectSQLBrowseConnect 上指定 QuotedID=NO,SQL Server Native Client ODBC 驅動程式不會開啟 QUOTED_IDENTIFIER 選項。

為了讓驅動程式知道 SET 選項的目前狀態,ODBC 應用程式應該不會使用 Transact-SQL SET 陳述式來設定這些選項。 它們應該只會使用資料來源或連接選項設定這些選項。 如果應用程式發出 SET 陳述式,此驅動程式可能會產生不正確的 SQL 陳述式。

請參閱

概念

執行陳述式 (ODBC)

SQLDriverConnect

SQLBrowseConnect