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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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 驱动程序之间的桥梁,理论上不会增加任何开销。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值