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         最好    高        好    可访问非关系,有多种编程接口 能        高层
--------------------------------------------------------------------------------
名词解释::
l         ODBC(Open DataBase Connectivity)开放数据库互联。是由微软主导的数据库链接标准。
l         MFC(Microsoft Foundation Class)微软基础类。MFC ODBC是对ODBC的封装。
l         DAO(Data Access Object)数据访问对象。不提供远程访问功能。
l         RDO(Remote Data Object)远程数据对象。速度快,支持SQL Server存储过程,同DAO一样是发展很多年了的技术。
l         OLE-DB(Object Linking and Embedding DataBase)对象链接和嵌入数据库。它依赖于COM和提供OLE DB提供者的厂商而非ODBC使用的SQL。
l         ADO(ActiveX Data Object)ActiveX数据对象。基于OLE-DB建立连接的局部和远程数据库访问技术。同OLE-DB一样要“年轻”些。
使用中,我们一般用OLE-DB和ADO替代DAO和RDO。
另外,ADO和OLEDB之间的关系为:
l         OLEDB是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据源到ADO-技术的应用程序或用于C++的开发者开发定制的数据库组件。
l         ADO 是基于OLE DB的访问接口,它是面向对象的OLE DB技术,继承了OLE DB的优点。属于数据库访问的高层接口。
l         OLE DB 是用于访问数据的重要的系统级编程接口,它是 ADO 的基础技术,同时还是 ADO.NET 的数据源。
l         可以这么说,ADO为OLEDB提供高层应用API函数


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/archive/2013/01/06/2848343.html,如需转载请自行联系原作者
相关文章
|
7天前
|
Oracle 关系型数据库 MySQL
mysql数据库和Oracle的区别
mysql数据库和Oracle的区别
54 1
|
7天前
|
数据库连接 调度 数据库
新人问我数据库的connect和session的区别
新人问我数据库的connect和session的区别
|
8月前
|
SQL 存储 数据库
sql数据库中的 delete 与drop的区别
sql数据库中的 delete 与drop的区别
194 1
|
6天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
91 3
mysql 设置环境变量与未设置环境变量连接数据库的区别
|
6天前
|
Java 关系型数据库 数据库连接
数据库datetime 和tempshape的区别
该内容探讨了`datetime`和`tempshape`在Java和MyBatis中的使用区别。`datetime`对应`java.util.Date`,在MyBatis配置中为`DATE`类型,而`tempshape`配置为`TIMESTAMP`。当插入数据时,`tempshape`会自动记录创建和修改时间,而`datetime`需手动插入当前日期。更多区别可参考[CSDN博客](https://blog.csdn.net/qq_29039705/article/details/80416286)上的文章。
19 2
数据库datetime 和tempshape的区别
|
7月前
|
SQL 数据库 数据安全/隐私保护
SAP CDS view 定义的数据库视图和传统 SQL 语句定义视图的区别
SAP CDS view 定义的数据库视图和传统 SQL 语句定义视图的区别
78 0
|
8月前
|
存储 关系型数据库 MySQL
MySQL数据库的表中 NULL 和 空值 到底有什么区别呢?
一篇短文让你明白MySQL数据库的表中 NULL 和 空值之间的区别!
4836 0
MySQL数据库的表中 NULL 和 空值 到底有什么区别呢?
|
7天前
|
存储 NoSQL 关系型数据库
面试题14: 关系型数据库和非关系型数据库的区别
面试题14: 关系型数据库和非关系型数据库的区别
|
7天前
|
SQL 分布式计算 关系型数据库
Hive与传统关系型数据库有什么区别?请举例说明。
Hive与传统关系型数据库有什么区别?请举例说明。
77 0
|
7天前
|
存储 NoSQL 关系型数据库
什么是NoSQL数据库?它与传统关系型数据库有什么区别?
什么是NoSQL数据库?它与传统关系型数据库有什么区别?
72 0