21

OLEDB 和 ODBC 有什么区别?我什么时候使用哪个以及如何知道我正在查看的是 OLEDB 驱动程序还是 ODBC 驱动程序?

4

1 回答 1

24

OLEDB 和 ODBC 是两个不同的数据库 API。ODBC 是一个较旧的标准,实际上并不特定于 Windows - 您可以获得基于 Unix 的 ODBC 库。OLEDB 是用于数据库连接的基于 COM 的 API。

如果您使用的数据库不附带本机 OLEDB 驱动程序,则有一个驱动程序用于使用 OLEDB 前端包装 ODBC。IIRC DB2/400 和 Sybase OLEDB 驱动程序(例如)使用这种方法。

Windows 中的 ODBC 管理员只关心 ODBC 驱动程序。ODBC 和 OLEDB 都可以使用格式略有不同的连接字符串。您可以从连接字符串中看出 - www.connectionstrings.com有许多不同数据库驱动程序的连接字符串示例。

编辑:Oracle 为一周中的每一天提供驱动程序技术。

  • Oracle 有一个本地 OLEDB 驱动程序,称为“Oracle provider for OLEDB”或类似的驱动程序。如果您使用的是 ADO(非 .Net,它位于 OLEDB 之上),这将是首选驱动程序。

  • 他们还有一个ODBC 驱动程序 ,例如,该驱动程序可用于从 Oracle 数据库中提取到 MS-Access 或与不支持 OLEDB 的应用程序或系统一起使用。例如,较旧的 Delphi/Oracle 或 Powerbuilder/Oracle 应用程序可能会使用此驱动程序。

  • Oracle 还有一个称为 OCI的特定于 Oracle 的接口。如果您使用 C 语言编写,这是最快的界面,也可以在非 Windows 平台上工作,但会将您的应用程序与 Oracle 联系起来。动态语言绑定(例如用于 Python 的cx_Oracle)往往是 OCI 的包装器。

  • 如果您使用的是 .Net,您可能需要ODP.Net而不是使用 .Net 为 OLEDB 提供的。这是 Oracle 提供的标准 .Net 接口库。

  • Oracle有几个JDBC 驱动程序。有一个类型 2 驱动程序是 OCI 的包装器和一个类型 4 驱动程序,它是用 Java 本地编写的,并直接通过网络与服务器通信。如果您使用 Java,则 type-4 驱动程序可能是大多数应用程序的最佳选择(您不必安装完整的 Oracle 客户端),除非您有特殊原因需要 type-2 驱动程序。

于 2008-11-07T08:24:33.730 回答