adodb 和 oledb 有啥区别?

Posted

技术标签:

【中文标题】adodb 和 oledb 有啥区别?【英文标题】:What is difference in adodb and oledb?adodb 和 oledb 有什么区别? 【发布时间】:2011-04-15 13:13:36 【问题描述】:

adodboledb 有什么区别?

这两者是什么关系?

ado.netadodboledb 的上下文中处于什么位置?

【问题讨论】:

What are the pros and cons of OleDB versus SQLClient?的可能重复 【参考方案1】:

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

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

    仅具有 ODBC 驱动程序的数据源的 ADODB - ADODB 使用 ODBC 的 OLEDB 提供程序加载 ODBC 驱动程序,然后连接到数据源。 ADODB for Data Source with OLEDB Driver (like SQL Server) - ADODB 使用 OLEDB Provider for SQL Server 直接与 DB 对话。

Oledb (Object Linking and Embedding DB)是大量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 的数据库/数据提供程序。

【讨论】:

你可能错过了一些东西,Oledb 可以连接到 msaccess。我经常用这个 这非常具有误导性。 ADO 是 OleDB 之上的 API,可以与任何提供 OleDB 驱动程序的数据库一起使用,而不仅仅是来自 Microsoft 的数据库。 更新了我的部分回答,以便更好地理解这些技术。【参考方案2】: ADO 是一个基于 COM 的库,用于访问数据库。 OleDB 和 ODBC 是与数据库通信的标准。 ADO 使用 OleDB 与任何公开 OleDB 驱动程序的数据库通信。 还有一个可以包装任何 ODBC 驱动程序的 OleDB 驱动程序。因此,ADO 还可以与任何公开了 ODBC 驱动程序的数据库通信。
ADO.NET(又名 System.Data)是一个基于 .NET 的库,用于访问数据库。 ADO.NET 内置了对 SQL Server、OleDB 和 ODBC 的支持 第三方可以通过构建 ADO.NET 兼容库将其数据库公开给 ADO.NET 第三方还可以通过提供 OleDB 或 ODBC 驱动程序将其数据库公开给 ADO.NET

【讨论】:

以上是关于adodb 和 oledb 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别

OLEDB和ODBC的区别(优缺点)

简要叙述下 ODBC ,OLEDB 和ADO之间的区别和联系!

Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别(转)

转载ADO,OLEDB,ODBC,DAO的区别

ODBCOLE DB ADO的区别