首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >OLE DB和ODBC数据源有什么不同?

OLE DB和ODBC数据源有什么不同?
EN

Stack Overflow用户
提问于 2008-09-19 15:52:45
回答 11查看 278.9K关注 0票数 187

我读了一篇关于pivotcache的MS Excel帮助文章,想知道OLE DB和ODBC源是什么意思

...You应该使用CommandText属性,而不是SQL属性,现在使用SQL属性主要是为了与早期版本的Microsoft Excel兼容。如果同时使用这两个属性,则CommandText属性的值优先。

对于OLE DB源,CommandType属性描述CommandText属性的值。

对于SQL源,CommandText属性的功能与属性完全相同,设置该属性会刷新数据...

我真的很感谢你简短的回答。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-07-13 15:05:52

根据, a book by Jason T. Roff, published by O'Reilly Media in 2001 (这里有很好的图表),他准确地说出了MOZILLA所说的话。

(直接从那本书的第7页)

  • ODBC仅提供对关系数据库的访问
  • OLE DB提供以下功能
    • 对数据的访问,无论其格式或位置如何
    • 对ODBC数据源和ODBC
    • 的完全访问

因此,OLE似乎通过ODBC驱动器层与基于SQL的数据源进行交互。

我不是100%确定这个图像是正确的。我不确定的两个连接是通过ADO C-api的ADO.NET和通过ODBC到基于SQL的数据源的OLE DB (因为在this diagram中,作者没有将OLE DB的访问通过ODBC,我认为这是一个错误)。

票数 163
EN

Stack Overflow用户

发布于 2009-04-24 09:47:52

ODBC:-仅适用于关系数据库(Sql Server、Oracle等)

OLE DB:-适用于关系数据库和非关系数据库。(Oracle、Sql-Server、Excel、raw文件等)

票数 59
EN

Stack Overflow用户

发布于 2009-07-13 17:37:44

以下是我的理解(非权威):

ODBC是一种与技术无关的开放标准,大多数软件供应商都支持它。OLEDB是COM时代特定于技术的微软应用编程接口(COM在.NET之前是一种组件和互操作性技术)

在某种程度上,各种数据源供应商(例如Oracle等)愿意与Microsoft数据消费者兼容,为他们的产品开发了OLEDB提供程序,但在大多数情况下,OLEDB仍然是Microsoft独有的标准。现在,大多数Microsoft数据源都允许ODBC和OLEDB访问,主要是为了与遗留的ODBC数据使用者兼容。此外,还存在用于ODBC的OLEDB提供程序(包装器),它允许用户使用OLEDB访问ODBC数据源。

就功能而言,OLEDB比ODBC丰富得多,但存在“一环一规则”综合症(过于通用、过于复杂、不固执己见)。

在非Microsoft的世界中,基于ODBC的数据提供程序和客户机被广泛使用,而且不会再有用武之地。

在微软内部,泡泡OLEDB正在逐步淘汰,取而代之的是原生.NET API,这些API建立在数据源的原生传输层之上(例如,用于MS SQL Server的TDS )。

票数 44
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/103167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档