为了账号安全,请及时绑定邮箱和手机立即绑定

OLE DB和ODBC数据源之间有什么区别?

/ 猿问

OLE DB和ODBC数据源之间有什么区别?

ABOUTYOU 2020-02-04 15:43:11

我正在阅读有关枢轴缓存的MS Excel帮助文章,想知道它们对OLE DB和ODBC源的含义

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

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

对于ODBC源,CommandText属性的功能与SQL属性完全相同,并且设置该属性将导致刷新数据...

非常感谢您的简短回答。


查看完整描述

3 回答

?
米脂

根据ADO:ActiveX Data Objects(Jason T. Roff的一本书,由O'Reilly Media于2001年出版)(此处的图表非常出色),他准确地说出了MOZILLA所说的话。

(直接来自该书的第7页)

  • ODBC仅提供对关系数据库的访问

  • OLE DB提供以下功能

    • 不管数据的格式或位置如何访问数据

    • 完全访问ODBC数据源和ODBC驱动程序

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

替代文字

我不是100%确定此图片正确。 我不确定的两个连接分别是ADO.NET和ADO C-api,以及OLE DB和ODBC以及基于ODBC的基于SQL的数据源(因为在此图中,作者并未通过ODBC来访问OLE DB,我相信是一个错误)。


查看完整回答
反对 回复 2020-02-04
?
慕村225694

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

OLE DB:-对于关系数据库和非关系数据库。(Oracle,Sql-Server,Excel,原始文件等)


查看完整回答
反对 回复 2020-02-04
?
繁星点点滴滴

这是我的理解(非权威):

ODBC是大多数软件供应商都支持的与技术无关的开放标准。OLEDB是COM时代的技术特定的 Microsoft API(COM是.NET之前的组件和互操作性技术)

在某些时候,各种愿意与Microsoft数据消费者兼容的数据源供应商(例如Oracle等)都为其产品开发了OLEDB提供程序,但是在大多数情况下,OLEDB仍然是仅Microsoft的标准。现在,大多数Microsoft数据源都允许ODBC和OLEDB访问,主要是为了与旧的ODBC数据使用者兼容。另外,存在用于ODBC的OLEDB提供程序(包装程序),如果愿意,它允许使用OLEDB访问ODBC数据源。

就功能而言,OLEDB比ODBC丰富得多,但饱受一环到规则的所有综合症的困扰(过于笼统,过于复杂,无蛋白)。

在非Microsoft世界中,基于ODBC的数据提供程序和客户端得到了广泛使用,并且无处不在。

在Microsoft泡沫内部,OLEDB正在逐步淘汰,而倾向于在该数据源的本机传输层(例如MS SQL Server的TDS)之上构建本机.NET API。


查看完整回答
反对 回复 2020-02-04

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信