VS.NET(C#)提升-2.7_数据库接口:OLE-DB诞生

本文探讨了OLE DB与ODBC两种数据访问技术的区别。OLE DB由Microsoft提出,旨在提供统一的数据访问接口,支持多种数据源,包括Excel、Email及Internet/Intranet等。而ODBC主要用于关系型数据库。文章还解释了二者之间的相互关系。

 ODBC仅支持关系数据库,以及传统的数据库数据类型,并且只以C/C++语言API(API就是一些C语言的代码,是最底层的程序,windows中就是一些.dll的文件)形式提供服务,因而无法符合日渐复杂的数据存取应用,也无法让脚本语言使用。对于后来的EXCEL等根本不能支持!

现今的应用程序很可能需要从不同的数据源取得数据,加以处理,再把处理过的数据输出到另外一个数据源中。随着数据源日益复杂化,数据源可能不是传统的关系数据库,而可能是Excel文件、Email、Internet/Intranet上的电子签名信息

Microsoft在1997年提出了OLE-DBObject Link and embed,对象连接与嵌入)架构,定义了统一的COM接口做为存取各类不同的数据源的标准,并且封装在一组COM对象之中,协助程序员存取企业中各类不同的数据源。如下图


使用者和提供者都是 COM 对象,并能够通过一套 COM 接口互相通信。这种基于 COM 的通信可被概括为在抽象对象(如 DataSource、Session、Command 和 Rowset)上执行的操作。

OLE DB中,采用 C++ 的概念进行设计,将不会有ODBC体系的drive APIC语言)的概念,取而代之的是提供者(provider)的概念。

OLE DB 标准的具体实现是一组C++ API 函数,就像ODBC 标准中的ODBC API 一样,不同的是,OLE DB 的API 是符合COM 标准、基于对象的(而ODBC API 则是简单的语言API,面向过程的)

OLEDB 和ODBC的相互关系

1,由于OLE DB 和ODBC 标准都是为了提供统一的访问数据接口,所以曾经有人疑惑:OLE DB 是不是替代ODBC 的新标准?

答案是否定的。

实际上,ODBC 标准的对象是基于SQL 的数据源(SQL-Based Data Source),而OLE DB 的对象则是范围更为广泛的任何数据存储。

现在,微软自己已经为所有的ODBC 数据源提供了一个统一的OLE DB 服务程序,叫做ODBC OLE DB Provider。

2,ODBC OLE DB Provider 发布之后,有人,担心:ODBC OLE DB Provider 是不是在ODBC 之上的新的层次(Layer)?

如果是,那么使用OLE DB 访问ODBC 数据源是否将影响性能?

答案也是否定的。

实际上,从图看出,ODBC OLE DB Provider 的作用,是替换ODBC Driver Manager,作为应用程序与ODBC 驱动程序之间的桥梁,理论上不会增加任何开销。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值