2010-09-22 22 views
28

adodboledb有什麼區別?adodb和oledb有什麼區別?

這兩者之間的關係是什麼?

ado.netadodboledb的背景下站在哪裏?

+0

可能重複[OleDB與SQLClient的優點和缺點?](http://stackoverflow.com/questions/473932/what-are-the -op-and-cons-of-oledb-versus-sqlclient) – nawfal 2013-02-20 10:30:09

回答

33

Adodb (ActiveX Data Objects DB)是OLE DB上的API層。它適用於基於MS的數據庫,如Sql Server,提供一致的API和優化。這就是說,您可以使用ADODB與非MS數據源連接,但這意味着您需要OLEDB/ODBC提供程序作爲數據源。

簡而言之,要連接到任何數據源,您需要一個驅動程序。這裏有幾個常見的場景想想:

  1. ADODB的數據源有ODBC驅動程序只 - ADODB會使用ODBC OLEDB提供程序,加載ODBC驅動程序,然後連接到數據源。
  2. ADODB數據源與OLEDB驅動程序(如SQL Server) - ADODB使用OLEDB提供程序的SQL Server直接與數據庫交談。

Oledb (Object Linking and Embedding DB)是大量dbs支持的標準格式,因此您可以使用Oledb連接到oracle,db2等。您也可以直接使用OLEDB連接到Sql Server,但與經過優化可與Sql Server和MS Access配合使用的adodb連接相比,API更爲混亂。

ADO.Net是基於.Net的db連接「體系結構」。在ADO.Net中有一個Oledb庫 - System.Data.OledbClient。 Adodb已被替換/升級,並且ADO.Net現在將System.Data.SqlClient庫用於基於MS的數據庫/數據提供程序。

+7

你可能錯過了一些東西,'Oledb'可以連接到msaccess。我經常使用這個 – Smith 2012-12-17 08:43:27

+2

是的。是MS Access仍然在大聲笑:) – 2013-01-04 19:32:14

+1

這是非常誤導。ADO是OleDB之上的API,可以與任何提供OleDB驅動程序的數據庫一起使用,而不僅僅是來自Microsoft的。 – 2016-05-05 23:22:56

3
  • ADO是一個用於訪問數據庫的基於COM的庫。
  • OleDB和ODBC是與數據庫通信的標準。
  • ADO使用OleDB與任何暴露OleDB驅動程序的數據庫通信。
  • 還有一個OleDB驅動程序可以包裝任何ODBC驅動程序。因此,ADO還可以與任何公開ODBC驅動程序的數據庫通信。

  • ADO.NET(又名System.Data)是用於訪問數據庫的一個基於.NET的庫。
  • ADO.NET有內置的支持爲SQL Server,OLEDB和ODBC
  • 第三方可以公開他們的數據庫通過建立一個ADO.NET兼容庫ADO.NET
  • 第三方也可能會暴露他們的數據庫到ADO.NET通過提供OleDB或ODBC驅動程序