ADOdb和OLE DB之间有什么区别?

47

adodboledb 有什么区别?

这两者之间的关系是什么?

ado.netadodboledb 的背景下处于何种地位?


可能是OleDB与SQLClient的优缺点是什么?的重复问题。 - nawfal
2个回答

46

Adodb (ActiveX数据对象DB)是OLE DB上的API层。它与基于MS的数据库(如SQL Server)配合良好,提供一致的API和优化。话虽如此,您也可以使用ADODB连接非MS数据源,但这意味着您需要为数据源提供OLEDB / ODBC提供程序。

简单来说,要连接任何数据源,您需要一个驱动程序。以下是几种常见情况:

  1. 只有ODBC驱动程序的数据源的ADODB - ADODB使用OLEDB提供程序来加载ODBC驱动程序,然后连接到数据源。
  2. 具有OLEDB驱动程序的数据源的ADODB(例如SQL Server)- ADODB使用OLEDB提供程序来直接与DB交互。

OLEDB (对象链接和嵌入DB)是一种标准格式,被许多数据库支持,因此您可以使用OLEDB连接到Oracle,DB2等。您也可以直接使用OLEDB连接到SQL Server,但与针对SQL Server和MS Access优化的ADODB连接相比,API更加混乱。

ADO.Net是基于.Net的数据库连接“架构”。在ADO.Net中,有一个用于OLEDB的库 - System.Data.OledbClient。 Adodb已被替换/升级,现在ADO.Net使用System.Data.SqlClient库连接基于MS的数据库/数据提供程序。


8
您可能遗漏了一些内容,Oledb 可以连接到 MS Access。我经常使用它。 - Smith
1
这非常具有误导性。ADO是建立在OleDB之上的API,可以与任何提供OleDB驱动程序的数据库一起使用,而不仅仅是来自Microsoft的数据库。 - Jonathan Allen
更新了我的回答的一些部分,以便更好地理解这些技术。 - Sidharth Panwar

20
  • 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公开其数据库。
  • 第三方也可以通过提供一个OleDB或ODBC驱动程序将其数据库公开给ADO.NET。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接