百科狗-知识改变命运!
--

数据源和数据库/ODBC和ADO的区别

百变鹏仔1年前 (2023-12-02)阅读数 9#综合百科
文章标签数据库数据

ODBC和ADO的区别:

ODBC(Open Database Connection,开放式数据互连)是访问数据库的一个统一接口标准,它允许开发人员使用ODBC API(应用程序接口)来访问多种不同的数据源,并执行数据操作。

当使用应用程序时,应用程序首先通过使用ODBC API与驱动管理器进行通信,ODBC API由一组ODBC函数调用组成,通过API调用ODBC函数提交SQL请求,然后,驱动管理器通过分析ODBC函数并判断数据源的类型,并配置正确的 驱动器,并把ODBC函数调用传递给驱动器,最后,驱动器处理ODBC函数调用,把SQL请求发送给数据源,数据源执行相应操作后,驱动器返回执行结果, 管理器再把执行结果返回给应用程序。

微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。

ADO包含一些顶层的对象:

连接,代表到数据库的连接

记录集,代表数据库记录的一个集合

命令,代表一个SQL命令

记录,代表数据的一个集合

流,代表数据的顺序集合

错误,代表数据库访问中产生的意外

字段,代表一个数据库字段

参数,代表一个SQL参数

属性,保存对象的信息

ADO组件的使用需要利用支持COM的高级语言,例如ASP中的VBScript或者Visual Basic,甚至Delphi,微软的竞争对手Borland的一个产品,现在也支持使用ADO来访问数据库。

ODBC通常用来访问不具备OLE-DB特性的非Microsoft数据库中的数据;16位的ODBC驱动程序工作起来可能非常缓慢。

ODBC素以最慢的数据访问方法而著称,但是很可惜,当ADO或DAO都不支持某个数据库管理器而ODBC支持这个数据库管理器时,在这种特定的情形 下,你仍然需要使用ODBC。在大多数情况下,这意味着要从数据库厂商那里获得所需的驱动程序,虽然Visual C++确实附带了一些产品的驱动程序(如果你正在使用数据库管理器的某些神秘功能,那么就需要建立自己的接口枣这并不是一件十分困难的事)。本质上讲,你 总是要使用ODBC来访问Microsoft产品之外的其它DBMS产品所创建的数据库,这些数据库并不具备OLE-DB功能。ODBC还要求做一些额外 的工作枣为ADO调整Visual C++中的大部分向导。

高级技巧

除了使用ADO和ODBC外,你还可以使用像DAO(数据访问对象)这样的早期技术,该技术包含在像Access这样的Microsoft产品中。 DAO依赖于用Microsoft Access自动获得的Microsoft Jet数据库引擎。DAO还是较早版的Visual Basic所使用的引擎(最新版的Visual Basic和Visual C++依赖于相同的ADO/OLE-DB组合),所以如果需要支持较早的Visual Basic应用程序,那么DAO仍是一个不错的选择。

尽管Microsoft文件声明,可以用DAO访问非Microsoft产品建立的数据库,但你仍会发现,在这种情况下,使用ADO和ODBC要好得 多。这样的话,不但兼容性问题会少一些,速度也将有所提高,因为数据请求经过的接口层减少了。有一条经验要记住,DAO是设计用来处理MDB文件的。

ADO的一个问题是,它不支持远程通信。这是Microsoft提出RDO(远程数据对象)的原因之一。这种特别技术在Visual Basic应用程序中的使用,要比在Visual C++中的使用多得多,所以我猜想,你们中有很多人都在使用它。但是,记住RDO仍是一种生命力很强的技术,这一点很重要。ADO确实具有替代RDO的远 程数据服务(RDS)特征。换言之,ADO在一个软件包中提供了DAO和RDO两种功能性。

ODBC使用的是微软提供的通用数据库连接,所以效率不高,ADO就好些,主要是针对微软数据库做了优化,降低了系统资源的使用率,所以效率比ODBC要高一些,特别是并发用户多时更能体现速度上的差异。

详解DAO、ADO、ADODC和ADODB的区别和联系

数据源和数据库/ODBC和ADO的区别

odbc是32位数据源,是一种较为方便的数据库联接机制,它由于有内嵌的数据库引擎,也就是说,你即使没有相关数据库的库文件,有说是不知道如何自己建立数据库引擎,都可以方便的操作数据库。odbc提供了对大多数数据库的黑盒联接。

ado方式则需要你自己选择数据块引擎,自己建立连接,这样的方式是用户有一定数据库经验的人。

相比之下,odbc简单易用,支持大多数数据库,但是ado更加灵活。

另一方面,odbc不便于在不同操作系统上的迁移,如果你把你的程序刚到另外的机器上,你的程序需要重新建立新的odbc连接,虽然并不复杂。ado就不需要,只要你的数据库是可达的就可以使用。

最后,odbc由于经过独立数据源连接,其间会有一部分而外开销,这部分开销将使你的实际速度变慢一些,如果你做的程序对速度要求敏感,请考虑使用ado方式的。

打得累死了,还有不明白的,给我邮件。

ADO(ACTIVEX DATA OBJECTS)应用层的数据访问接口

ODBC 数据库驱动接口

OLE DB 系统级数据访问接口

DAO (DATA ACCESS OBJECTS) 对象的数据访问接口

ADO是基于全新的OLE DB技术而设计的.是一种基于应用程序层的数据访问接口.它是DAO/RDO的后继产物.

DAO是VB最先采用的面向对象的数据访问接口,通过DAO访问MICROSOFT JET数据库引擎.

ADODC是封装ADO的VB数据控件,可减少代码编写.

ADODB是数据对象,操作数据库需通过编写代码 来实现.

以上简单说明仅供参考.

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)