OLEDB和ODBC的区别

21

OLEDB和ODBC有什么区别?我该何时使用它们,如何知道我正在查看的是OLEDB驱动程序还是ODBC驱动程序?

1个回答

26
OLEDB和ODBC是两种不同的数据库API。ODBC是一个较旧的标准,实际上并不特定于Windows - 你可以获取基于Unix的ODBC库。OLEDB是一种基于COM的数据库连接API。
如果你使用的数据库没有本地的OLEDB驱动程序,则可以使用将ODBC包装为OLEDB前端的驱动程序。我IRC DB2/400和Sybase OLEDB驱动程序(例如)使用此方法。
Windows中的ODBC管理员只关心ODBC驱动程序。ODBC和OLEDB都可以使用连接字符串,其格式略有不同。您可以从连接字符串中了解到 - www.connectionstrings.com有许多不同数据库驱动程序的连接字符串示例。
编辑:Oracle每天都有一种驱动技术。
  • Oracle有一个称为“Oracle Provider for OLEDB”或类似名称的本机OLEDB驱动程序。如果您正在使用ADO(非.NET,其位于OLEDB上方),则应该使用此驱动程序。

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

  • Oracle还拥有一个名为OCI的Oracle特定接口。如果您使用C编写代码,则这是最快的接口,并且也适用于非Windows平台,但会将您的应用程序绑定到Oracle。像Python的cx_Oracle这样的动态语言绑定 tend to be wrappers around OCI.

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

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


如果我想连接到一个Oracle DB,例如从Windows系统,那么推荐的选项是什么,为什么? - Joseph
我认为如果不知道您想使用什么编程语言,很难给出一个好的答案。 - gnud
这是关于编程的内容,翻译成中文如下:假设这是.NET。那么驱动程序会有影响吗?我认为这取决于操作系统。 - Joseph
任何带有本地组件的驱动程序都将是特定于操作系统的;您必须为另一个平台重新编译。我认为ODP.Net默认情况下不直接支持Mono,这使它仅限于Windows。Type-4 JDBC驱动程序是可移植的 - 至少在理论上 - 因为它们是纯Java。 - ConcernedOfTunbridgeWells

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