Office及VBA技术交流

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3148|回复: 0

ODBC, DAO, RDO, OLEDB, ADO之间的区别和联系

[复制链接]

该用户从未签到

55

主题

83

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2016-1-19 11:36:04 | 显示全部楼层 |阅读模式
转载请注明以下信息:
转自:officemaster.cn

ODBC 、DAO、ADO 、OLEDB 数据库连接方式区别及联系
ODBC 是一种底层的访问技术,因此,ODBC API 可以是客户应用程序能从底层设置和控制数据库,完成一些高级数据库技术无法完成的功能;但不足之处由于ODBC只能用于关系型数据库,使得利用ODBC很难访问对象数据库及其他非关系数据库。
DAO 提供了一种通过程序代码创建和操纵数据库的机制。最大特点是对MICROSOFT JET数据库的操作很方便,而且是操作JET数据库时性能最好的技术接口之一。并且它并不只能用于访问这种数据库,事实上,通过DAO技术可以访问从文本文件到大型后台数据库等多种数据格式。
ADO 是基于OLE DB的访问接口,它是面向对象的OLE DB技术,继承了OLEDB的优点。属于数据库访问的高层接口。

注释:

ODBC(OpenDataBase Connectivity)开放数据库互联。是由微软主导的数据库链接标准。

DAO(Data Excel.gsxh.org/forum.php?gid=45" target="_blank" class="relatedlink">Access Object)数据访问对象。不提供远程访问功能。

ADO(ActiveX Data Object)ActiveX数据对象。基于OLE-DB建立连接的局部和远程数据库访问技术。同OLE-DB一样要“年轻”些。使用中,我们一般用OLE-DB和ADO替代DAO和RDO。

OLE-DB(Object Linking and Embedding DataBase)对象链接和嵌入数据库。它依赖于COM和提供OLE DB提供者的厂商而非ODBC使用的SQL。

MFC(Microsoft Foundation Class)微软基础类。MFCODBC是对ODBC的封装。

RDO(Remote Data Object)远程数据对象。速度快,支持SQLServer存储过程,同DAO一样是发展很多年了的技术。



ODBC(Open Database Connectivity,开放数据库互连)
1992年,微软公司开放服务结构(WOSA,WindowsOpen Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。ODBC 是一种底层的访问技术,因此,ODBCAPI可以是客户应用程序能从底层设置和控制数据库,完成一些高级数据库技术无法完成的功能;但不足之处由于ODBC只能用于关系型数据库,使得利用ODBC很难访问对象数据库及其他非关系数据库。

DAO(Data Access Object,数据访问对象)
1993年,微软公司用来显露了MicrosoftJet数据库引擎(最早是给Microsoft Access 所使用,现在已经支持其它数据库),并允许开发者通过ODBC直接连接到其他数据库一样,直接连接到 Access 表。DAO 提供了一种通过程序代码创建和操纵数据库的机制。最大特点是对MICROSOFT JET数据库的操作很方便,而且是操作JET数据库时性能最好的技术接口之一。并且它并不只能用于访问这种数据库,事实上,通过DAO技术可以访问从文本文件到大型后台数据库等多种数据格式。
DAO是基于MICROSOFT的JET 技术设计,面向对象的数据访问接口,最早在VB中使用,DAO可以访问的数据库有:
1、用数据库引擎版本为1.x、2.x 和 3.0 的Microsoft Access 或 Microsoft Visual Basic 创建的、使用 Microsoft Jet 数据库引擎的数据库。
2、可安装的ISAM数据库,包括:dBASE III、dBASE IV、dBASE 5.0、Paradox 3.x、4.x 和 5.x 版。
3、开放式数据库连接(ODBC)数据库,包括但不仅限于Microsoft SQL Server、SYBASESQL Server 和 ORACLE Server。若要访问ODBC数据库,必须具有希望访问的数据库的适当ODBC驱动程序。
4、MicrosoftExcel 3.0、4.0、5.0 和 7.0 版工作表。
5、LotusWKS、WK1、WK3 和WK4 电子表格。
6、文本文件。

RDO(Remote Data Objects,远程数据对象)
1995年,RDO以ODBC为基础,依赖ODBC API、选定的ODBC驱动程序以及后端数据库引擎实现大部分的智能和功能,RDO具备基本的ODBC处理方法,所以可以直接执行大多数ODBC API函数。RDO是从DAO派生的,同DAO最大的不同在于其数据库处理模式。DAO是针对Records和Fields,而RDO是按照Rows和Columns来处理。也就是说DAO是ISAM模式,RDO是关系模式。此外DAO是访问Access的Jet引擎 (Jet是ISAM)的接口,而RDO则是访问ODBC的接口。可见,RDO是综合了DAO/Jet、ODBC等优点。

OLE DB(Object Linking and Embedding, Database,对象连接嵌入数据库)
1997年, Microsoft 的一个战略性系统级编程接口,用于管理整个组织内的数据。OLEDB 是建立在 ODBC 功能之上的一个开放规范。ODBC 是为访问关系型数据库而专门开发的,OLE DB 则用于访问关系型和非关系型信息源,例如主机ISAM/VSAM 和层次数据库,电子邮件和文件系统存储,文本、图形和地理数据以及自定义业务对象。
OLE DB是基于COM技术的一组接口规范,是系统级数据访问接口,OLE DB提供通用数据访问的方式,不管数据是以何种形式存储,可以对电子邮件、文本文件、复合文件、数据表等各种各样的数据通过统一的接口进行存取的一种技术。用来访问各种数据源,如ORACLE、SQL Server、Access、Excel等等。而且相比下文的ADO通用数据访问方 式,OLE DB性能要更强一点。


ADO(ActiveX Data Object,活动数据对象)
1996年,ADO是DAO/RDO的后继产物。ADO 是基于OLEDB的访问接口,它是面向对象的OLE DB技术,继承了OLEDB的优点。属于数据库访问的高层接口。ADO是基于OLE DB(ActiveX技术)技术设计的应用层数据访问接口,对OLE DB接口进行封装,所以使用中仍然是通过OLE DB桥接数据库。所以,ADO同OEL DB一样提供了通用数据访问功能,支持关系数据库和非关系数据库的访问。ADO功能上对DAO和RDO进行了综合演绎,就是说有合并也有取消优化等等 OLEDB和ODBC都是底层系统,都可直接对数据库进行访问,区别在于OLEDB既可以访问关系型数据库,也可访问非关系型数据库,而ODBC只能访问关系型数据库。虽然对不同数据库的操作方法不一样,但统一了通向不同的数据源的底层应用程序接口。


ADO和OLEDB之间的关系
OLEDB是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据源到ADO-技术的应用程序或用于C++的开发者开发定制的数据库组件。
OLE DB 是用于访问数据的重要的系统级编程接口,它是 ADO 的基础技术,同时还是ADO.NET 的数据源。
ADO 是基于OLE DB的访问接口,它是面向对象的OLE DB技术,继承了OLEDB的优点。属于数据库访问的高层接口。
可以这么说,ADO为OLEDB提供高层应用API函数。




数据接口的连接方式

一、ADO连接
1、连接access数据库
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Driver={Microsoft Access Driver(*.mdb)};dbq="&Server.Mappath("dbname(路径全名)")
2、连接SQL Server数据库
set conn=server.CreateObject("ADODB.Connection")
strCon="Driver={SQLServer};server=(local);uid=sa;pwd=sa;database=dbname"
conn.open(strCon)
3、连接DB2数据库
set conn=server.CreateObject("ADODB.Connection")
strCon="DRIVER={IBM DB2 ODBC DRIVER}; DSN=xxx; UID=xxx; PWD=xxx; DBALIAS=xxx;"
conn.open(strCon)

二、ODBC连接(必须先注册数据源---DSN)
(列举配置SQL Server数据库文件DSN,打开管理工具---数据源(ODBC)---打开系统DSN选项卡---单击添加按钮---从列表中选择SQL Server,单击完成---在名称中输入数据库名称,在你想连接的SQL Server服务器中输入(local)---按向导提示完成)
1、连接access数据库
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DSN=注册名"
2、连接SQL Server数据库
set conn=Server.CreateObject("ADODB.Connection")
conn.connectionstring="DSN=注册名;UID=xxx;PWD=xxx;"
conn.open

三、OLEDB连接数据库
1、连接access数据库
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&server.MapPath("dbname(路径全名)")&";PersistSecurity Info=False"
set rs=Server.CreateObject("ADODB.Recordset")
2、连接SQL Server数据库
set conn=server.CreateObject("ADODB.Connection")
strCon="Provider=SQLOLEDB;data source=(local);initial catalog=dbname;UserID=xxx;password=xxx;"
conn.open(sql)



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Office Master ( 蜀ICP备16003423号 )

GMT+8, 2019-10-19 02:58 , Processed in 0.224434 second(s), 25 queries .

Office Master

快速回复 返回顶部 返回列表