SQL Server 連接基礎知識

該堆棧的頂部是 API 或對象庫層。應用程序通過對象庫公開的 API 函數或接口連接到 Microsoft SQL Server。用于訪問 SQL Server 的 API 示例包括 ODBC 和 DB-Library。用于訪問 SQL Server 的對象庫示例包括 OLE DB、ADO 和 ADO.NET。由于 ADO 最終使用 OLE D

該堆棧的頂部是 API 或對象庫層。應用程序通過對象庫公開的 API 函數或接口連接到 Microsoft? SQL Server。用于訪問 SQL Server 的 API 示例包括 ODBC 和 DB-Library。用于訪問 SQL Server 的對象庫示例包括 OLE DB、ADO 和 ADO.NET。由于 ADO 最終使用 OLE DB 與服務器通信,因此 Windows 應用程序在與 SQL Server 通信時實際上只使用兩個常用的對象庫,即 OLE DB 和 ADO.NET。由于通過 ADO 或 ADO.NET 進行連接通常比通過 ODBC 進行連接更普遍(但 SQL Server 的查詢分析器和企業管理器仍通過 ODBC 進行連接),因此本文將從 ADO/OLE DB 和 ADO.NET 的角度介紹 SQL Server 連接體系結構的客戶端。如今,大多數應用程序均通過對象庫(而非 ODBC 或類似 API)連接到 SQL Server。  

  ADO 和 OLE DB

  OLE DB 客戶端(也稱作使用者)通過客戶端提供程序與服務器以及其他后端程序進行通信。此提供程序是一組 COM 組件(一個或多個),用于將應用程序請求轉換為網絡進程間通信 (IPC) 請求。在使用 SQL Server 的情況下,最常用的 OLE DB 提供程序是 SQLOLEDB,它是 Microsoft 為 SQL Server 提供的 OLE DB 提供程序。SQLOLEDB 隨附于 SQL Server 中,并作為 Microsoft 數據訪問組件 (MDAC) 庫的一部分安裝。  

  為了使用 ADO 與 SQL Server 進行通信,應用程序首先使用 Connection 對象建立與服務器的連接。ADO 的 Connection 對象接受一個連接字符串,該字符串指定要使用的 OLE DB 提供程序以及傳遞給它的參數。如果應用程序使用 SQLOLEDB 提供程序連接到 SQL Server,則該字符串中將顯示“SQLOLEDB”。  

  ADO 應用程序還可以通過 ODBC 連接到 SQL Server。為此,應用程序將使用適用于 ODBC 的 OLE DB 提供程序,并指定在其連接字符串中引用目標 SQL Server 的 ODBC 數據源。這種情況下,應用程序與 OLE DB 進行通信,同時 ODBC 的 OLE DB 提供程序調用相應的 ODBC API,以便與 SQL Server 進行會話。   

  ADO.NET

  ADO.NET 應用程序通常使用 .NET Framework Data Provider for SQL Server 連接到 SQL Server。該本機提供程序使 ADO.NET 對象能夠與 SQL Server 直接進行通信。通常,應用程序使用 SqlConnection 對象建立連接,然后使用 SqlCommand 對象向服務器發送命令,并接收服務器返回的結果。SqlDataAdapter 和 SqlDataReader 類通常與 SqlCommand 一起使用,以便通過托管的代碼應用程序與 SQL Server 進行交互。  

  通過 OleDbConnection 類,ADO.NET 應用程序還可以使用 SQLOLEDB OLE DB 提供程序與 SQL Server 進行交互。此外,它們可以通過 OdbcConnection 類使用 ODBC 訪問 SQL Server。因此,僅通過托管代碼,您就有三種不同的方法從應用程序訪問 SQL Server。從故障排除的角度而言,了解這些方法是非常有用的,因為它可以幫助您將遇到的與連接相關的問題歸結到特定的數據訪問層或庫。 

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享