【问题标题】:What is the difference between ODBC and OleDB?ODBC 和 OleDB 有什么区别?
【发布时间】:2009-07-24 14:58:27
【问题描述】:

我在这里发现了这个问题:OLEDB v/s ODBC

这给了我更多信息,但并没有真正回答我提出的问题,所以我将从那里开始。

我正在使用 C#。关于我是如何解决这个难题的,我将不再赘述,但基本上我正在尝试在 ODBC 和 oleDB 之间做出决定。

我们与许多不同的客户合作,他们拥有各种各样的数据库(一些 SQL、一些 oracle,还有一些我从未听说过也懒得记名字的东西)

现在,据我了解,ODBC 已经过时了,并且曾经/现在是标准。现在 OleDB 出现了,而且……是……不同吗?但完成同样的事情(它与数据库对话)

我为什么要使用其中一个而不是另一个? ODBC 是(根据上面的帖子)跨平台的,这很好,但他提供的关于 OleDB 提供的 ODBC 没有提供的信息很少。

在我的其他研究中,我发现(在 MSDN 论坛上)人们说“如果可以,如果必须,请使用 OleDB,如果必须,请使用 ODBC”当然,这没有任何理由,所以我想听一些。

【问题讨论】:

    标签: database odbc oledb


    【解决方案1】:

    ODBC 是用于访问数据库的 C API。它有一个标准,每个主要数据库供应商都支持它,它有很好的文档记录,它是跨平台的。 OLEDB 是一个类似的接口,它使用微软的 COM 技术而不是 C API。这意味着它只能在支持 COM 的平台上轻松使用。

    归根结底,这两个库都提供了大致相同的基本功能。事实上,一些 OLEDB 驱动程序实际上使用 ODBC 而不是本地数据库。

    因此,如果您是 C# 开发人员,在 Windows 上工作,OLEDB 是两者之间的明显选择。如果您使用 C(或不使用 COM 的 C++),或者需要跨平台支持,那么 ODBC 是更好的选择。

    【讨论】:

      【解决方案2】:

      作为 C# 开发人员,并且因为您要访问许多不同的数据源,您应该使用 OLEDB。我从 white paper 复制了以下内容,因为它提供了一些提示:

      OLE DB 不是 ODBC 的替代品

      ODBC 技术和第三方市场已经成熟到 ODBC 成为访问 SQL 数据库的理想技术的程度。因此,OLE DB 的一个组成部分是一个新的 OLE DB 驱动程序管理器,它使 OLE DB 使用者能够与 ODBC 提供程序对话。以下信息可以指导您选择使用哪种技术:

      • 如果您从非 OLE 环境访问标准关系数据库,则 ODBC 是最佳选择。
      • 如果要向非 SQL 数据公开数据接口,OLE DB 是最佳选择。
      • 如果您在 OLE 环境中编程,OLE DB 是最佳选择。
      • 如果要构建可互操作的数据库组件,OLE DB 是唯一的选择。

      【讨论】:

      • 我认为重要的是要指出,第二个项目符号仅适用于 OLEDB 驱动程序的供应商(或一些非常专业的客户)——大多数客户端软件从不公开这样的接口。第四个要点就是营销语言。
      • @McSim:这些要点均不适用于该问题。问题是关于从 C# 中使用这些数据库。 OP 不会调用基于 ODBC C 的 API,也不会调用基于 OLE DB COM 的 API。你说你选择了OLEDB。你在调用 COM API 吗?
      【解决方案3】:

      如果您使用 C# 进行编程,您将不会直接使用其中任何一种。您将以某种形式使用 ADO.NET。

      确实,您在连接字符串中指定的提供程序可能会变成 ODBC 提供程序或 OleDB 提供程序,但这与您的代码无关。从您的角度来看,ADO.NET 将使用这两种 API。

      【讨论】:

      • 投反对票的人愿意解释投反对票的原因吗?
      • 我没有投反对票,但我认为您没有解决这个问题。那里有很多白痴 - 我发现最好忽略它们。
      • 那我不明白这个问题。他不是想决定使用哪个 API,是吗?我认为他正在尝试决定使用哪些驱动程序以获得最大的灵活性。我没有从暗示 OP 即将开始调用 OLEDB COM API 的问题中得到任何信息。
      • 此外,白痴不是问题。问题是聪明人出于充分的理由投反对票 - 然后不会告诉我原因是什么!
      猜你喜欢
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 2011-04-04
      • 2010-10-02
      • 2011-12-12
      • 2010-09-16
      • 2012-03-14
      相关资源
      最近更新 更多