为什么会有ODBC、ADO和RDO?

来源:百度文库 编辑:神马文学网 时间:2024/05/11 01:01:35
为什么会有ADO?
因为微软希望有一个统一的数据库操作接口,于是便出现了ODBC和ADO。这是我看到这个问题的时候最直接的反应。
ODBC通常用来访问不具备OLE-DB特性的非MiCROSoft数据库中的数据;ADO方法是针对新的程序设计情形而采用的。它克服了早期技术的诸多限制,依赖于Microsoft新的底层访问方法OLE-DB(对象链接和嵌入数据库)。
除了使用ADO和ODBC外,你还可以使用像DAO(数据访问对象)这样的早期技术,该技术包含在像AccESs这样的Microsoft产品中。DAO依赖于用Microsoft Access自动获得的Microsoft Jet数据库引擎。尽管Microsoft文件声明,可以用DAO访问非Microsoft产品建立的数据库,但你仍会发现,在这种情况下,使用ADO和ODBC要好得多。这样的话,不但兼容性问题会少一些,速度也将有所提高,因为数据请求经过的接口层减少了。有一条经验要记住,DAO是设计用来处理MDB文件的。
ADO的一个问题是,它不支持远程通信。这是Microsoft提出RDO(远程数据对象)的原因之一。
ODBC DAO ADO OLEDB 数据库连接方式区别
ODBC 是一种底层的访问技术,因此,ODBC API 可以是客户应用程序能从底层设置和控制数据库,完成一些高级数据库技术无法完成的功能;但不足之处由于ODBC只能用于关系型数据库,使得利用ODBC很难访问对象数据库及其他非关系数据库。
DAO 提供了一种通过程序代码创建和操纵数据库的机制。最大特点是对MICROSOFT JET数据库的操作很方便,而且是操作JET数据库时性能最好的技术接口之一。并且它并不只能用于访问
这种数据库,事实上,通过DAO技术可以访问从文本文件到大型后台数据库等多种数据格式。
ADO 是基于OLE DB的访问接口,它是面向对象的OLE DB技术,继承了OLE DB的优点。属于数据库访问的高层接口。
--------------------------------------------------------------------------------
访问接口    易用性  运行性能  可扩展性  突出特点     能否访问非关系数据源  技术层次
--------------------------------------------------------------------------------
ODBC        差      较高      差       可进行底层控制           否        底层
--------------------------------------------------------------------------------
MFC ODBC    好                一般     通用标准,应用广泛       否        高层
--------------------------------------------------------------------------------
MFC DAO     好      较高      一般     访问JET性能最好          能        高层
--------------------------------------------------------------------------------
OLE DB      较难    高        好       可访问非关系DB           能        底层
--------------------------------------------------------------------------------
ADO         最好    高        好    可访问非关系,有多种编程接口 能        高层
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
编者注:
ODBC(Open DataBase Connectivity)开放数据库互联。是由微软主导的数据库链接标准。
MFC(Microsoft Foundation Class)微软基础类。MFC ODBC是对ODBC的封装。
DAO(Data Access Object)数据访问对象。不提供远程访问功能。
RDO(Remote Data Object)远程数据对象。速度快,支持SQL Server存储过程,同DAO一样是发展很多年了的技术。
OLE-DB(Object Linking and Embedding DataBase)对象链接和嵌入数据库。它依赖于COM和提供OLE DB提供者的厂商而非ODBC使用的SQL。
ADO(ActiveX Data Object)ActiveX数据对象。基于OLE-DB建立连接的局部和远程数据库访问技术。同OLE-DB一样要“年轻”些。
使用中,我们一般用OLE-DB和ADO替代DAO和RDO。
ODBC ADO OLEDB三者区别?
起初,出现的是odbc提供c的函数调用接口,定义了一组通用的数据库API,但速度比较慢, ole db是微软的第三代组件结构,速度较odbc快,而ado是oledb的一个子集,是com组件,更快,更高效。
odbc,oledb,ado,adox的关系:
odbc:  曾经的数据库通信标准
oledb: 在一切对象化的趋势下,ms打算用它取代odbc, oledb分两种:直接的oledb和面向odbc的oledb,后者架构在odbc上,这样没有自己的oledb提供者的数据库也可以使用oledb的特点了。
ado:   其实只是一个应用程序层次的界面,它用oledb来与数据库通信。
adox:  对ado的安全性,维护性(如:创建一个数据库)进行了扩展。
ADO不是比ODBC和OLEDB高级些,而是高层