OLEDB 与 ODBC [重复]
Posted
技术标签:
【中文标题】OLEDB 与 ODBC [重复]【英文标题】:OLEDB v/s ODBC [duplicate] 【发布时间】:2010-09-21 06:04:38 【问题描述】:OLEDB 和 ODBC 有什么区别?我什么时候使用哪个以及如何知道我正在查看的是 OLEDB 驱动程序还是 ODBC 驱动程序?
【问题讨论】:
【参考方案1】: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 有一个 native OLEDB driver 称为“Oracle 提供程序” 对于OLEDB'或类似的东西。如果你是 使用 ADO(非.Net,它位于 OLEDB)这将是首选 司机。
他们还有一个ODBC driver 这将是(例如)有用的 从 Oracle 数据库中提取 进入 MS-Access 或使用不支持 OLEDB 的应用程序或系统。例如,较旧的 Delphi/Oracle 或 Powerbuilder/Oracle 应用程序可能会使用此驱动程序。
Oracle 还有一个 称为特定于 Oracle 的接口 OCI。这是最快的 接口,如果你用 C 和 也适用于非 Windows 平台但与您的应用程序相关联 到甲骨文。动态语言绑定(例如 Python 的 cx_Oracle)往往是 OCI 的包装器。
如果您使用的是 .Net,您可能 想要ODP.Net 而不是 使用 .Net 为 OLEDB 提供。这是 标准 .Net 接口库 由 Oracle 提供。
有几个JDBC drivers 用于 甲骨文。有一个 2 型驱动程序 这是 OCI 的包装器和 编写的 type-4 驱动程序 在 Java 中原生并进行通信 直接通过网络到 服务器。如果您使用 Java,那么 type-4 驱动程序可能是大多数应用程序的最佳选择(您不必安装完整的 Oracle 客户端),除非您有特殊原因需要 type-2 驱动程序。
【讨论】:
如果我可以选择从 Windows 系统连接到 Oracle 数据库,那么推荐的选项是什么?为什么? 我认为在不知道您想使用哪种语言的情况下,不可能对这个问题给出一个好的答案。 说它是 .NET。司机重要吗?我认为这取决于操作系统。 任何带有本机组件的驱动程序都将是特定于操作系统的;您将不得不为另一个平台重新编译。我不认为 ODP.Net 直接支持 Mono,默认情况下它只支持 Windows。 Type-4 JDBC 驱动程序是可移植的——至少在理论上——因为它们是纯 Java。以上是关于OLEDB 与 ODBC [重复]的主要内容,如果未能解决你的问题,请参考以下文章