adodb和oledb有什么区别?

时间:2010-09-22 05:01:25

标签: ado.net oledb adodb

adodboledb之间的区别是什么?

这两者之间有什么关系?

ado.net位于adodboledb的上下文中?

2 个答案:

答案 0 :(得分:37)

Adodb (ActiveX Data Objects DB)是OLE DB上的API层。它适用于基于MS的数据库,如Sql Server,提供一致的API和优化。也就是说,您也可以使用ADODB连接非MS数据源,但这意味着您将需要OLEDB / ODBC提供程序来存储数据源。

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

  1. 仅具有ODBC驱动程序的数据源的ADODB - ADODB使用OLEDB Provider for ODBC加载ODBC驱动程序,然后连接到数据源。
  2. 带有OLEDB驱动程序的数据源的ADODB(如SQL Server) - ADODB使用OLEDB Provider for SQL Server直接与DB通信。
  3. Oledb (Object Linking and Embedding DB)是大量dbs支持的标准格式,因此您可以使用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的数据库/数据提供者。

答案 1 :(得分:6)

  • ADO是一个基于COM的库,用于访问数据库。
  • OleDB和ODBC是与数据库通信的标准。
  • ADO使用OleDB与任何公开OleDB驱动程序的数据库进行通信。
  • 还有一个可以包装任何ODBC驱动程序的OleDB驱动程序。因此,ADO还可以与任何公开ODBC驱动程序的数据库通信。
  • ADO.NET(a.k.a。System.Data)是一个基于.NET的库,用于访问数据库。
  • ADO.NET内置了对SQL Server,OleDB和ODBC的支持
  • 第三方可以通过构建ADO.NET兼容库
  • 将其数据库公开给ADO.NET
  • 第三方也可以通过提供OleDB或ODBC驱动程序将其数据库公开给ADO.NET