Dao和Ado那个好?

xiaoxiaohan 2002-04-04 10:40:37
现在有一个很实际的数据库(Access 97)操作问题,我可以选择DBGride控件+Data控件的组合或者用DataGride控件+ADODB库,主要考虑速度其次是程序的简单方便。我该用那种方法呢?请大家尽量说出自己的根据。
...全文
571 92 打赏 收藏 转发到动态 举报
写回复
用AI写文章
92 条回复
切换为时间正序
请发表友善的回复…
发表回复
huimouse 2002-04-17
  • 打赏
  • 举报
回复
使用一种方法不能看它有多先进,而要看它的适用性。DAO特地是为ACCESS定做的,当然应该选用DAO,而ADO虽然先进,但复杂程度却增加了,竟然选用ACCESS数据库,数据量应该不会太大,而ADO、DAO在性能方面的差异应该不影响程序的使用。所以建议选择DAO。
vivan19781111 2002-04-12
  • 打赏
  • 举报
回复
ADO 和 RDO、DAO 的比较


ADO 并不是自动和您现存的数据访问应用程序代码兼容的。当 ADO 封装 DAO 和 RDO 的功能性的时候,您必须将许多语言要素转换为 ADO 语法。在某些情况下,这将意味着您现存代码的某些功能的一个简单转换。在其他情况下,最佳的做法可能是用 ADO 的新功能重写该应用程序。

DAO (Data Access Objects) 数据访问对象是第一个面向对象的接口,它显露了 Microsoft Jet 数据库引擎(由 Microsoft Access 所使用),并允许 Visual Basic 开发者通过 ODBC 象直接连接到其他数据库一样,直接连接到 Access 表。DAO 最适用于单系统应用程序或小范围本地分布使用。

RDO (Remote Data Objects) 远程数据对象是一个到 ODBC 的、面向对象的数据访问接口,它同易于使用的 DAO style组合在一起,提供了一个接口,形式上展示出所有 ODBC 的底层功能和灵活性。尽管 RDO 在很好地访问 Jet 或 ISAM 数据库方面受到限制,而且它只能通过现存的 ODBC 驱动程序来访问关系数据库。但是,RDO 已被证明是许多 SQL Server、Oracle 以及其他大型关系数据库开发者经常选用的最佳接口。RDO 提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。

ADO 是 DAO/RDO 的后继产物。ADO 2.0在功能上与 RDO 更相似,而且一般来说,在这两种模型之间有一种相似的映射关系。ADO “扩展”了 DAO 和 RDO 所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法(和参数),以及事件。例如,ADO 没有与 rdoEngine 和 rdoEnvironment 对象相等同的对象,可以显露 ODBC 驱动程序管理器和 hEnv 接口。尽管事实上您的接口可能是通过 ODBC OLE DB 服务提供程序实现的,但您当前也不能从 ADO 中创建 ODBC 数据源。

包含在 DAO 和 RDO 模型中的许多功能被合并为单个对象,这样就生成了一个简单得多的对象模型。然而,由于这个原因,起初您可能会觉得找到合适的 ADO 对象、集合、属性、方法,或事件非常困难。与 DAO 和 RDO不同的是,尽管 ADO 对象是分层结构的,但在分层结构范围之外也是可以创建的。

不过,也应当注意,ADO 当前并不支持 DAO 的所有功能。ADO 主要包括 RDO 风格的功能性,以便和 OLE DB 数据源交互,另外还包括远程和 DHTML 技术。

一般说来,在 ADO 的演化过程中,马上把大多数 DAO 应用程序(except possibly是那些使用 ODBCDirect 的应用程序)移植到 ADO 上可能为时太早,因为当前的 ADO 并不支持数据定义 (DDL)、用户、组,等等。不过,如果您只将 DAO 用于客户—服务器应用程序,而并不依赖于 Jet 数据库引擎或不使用 DDL,那么您现在就可能移植到 ADO。最终,Microsoft 将提供一个 ADO DDL 部件来帮助进行 DAO 到 ADO 的移植,并为 OLE DB 供应商提供一般的 DDL 支持。


Visual Basic 中的 ADO、DAO 和 RDO


在 Visual Basic 中,可用的数据访问接口有三种:ActiveX 数据对象(ADO)、远程数据对象(RDO) 和数据访问对象(DAO)。数据访问接口是一个对象模型,它代表了访问数据的各个方面。使用 Visual Basic,可以在任何应用程序中通过编程控制连接、语句生成器和供使用的返回数据。

为什么在 Visual Basic 中有三种数据访问接口呢?因为数据访问技术总是在不断进步,而这三种接口的每一种都分别代表了该技术的不同发展阶段。最新的是 ADO,它是比RDO和 DAO 更加简单,然而更加灵活的对象模型。对于新工程,应该使用 ADO 作为数据访问接口。

为什么使用 ADO?
ADO 是为 Microsoft最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。OLE DB 为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。ADO 在关键的 Internet 方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。之所以称为 ADO,是用了一个比较熟悉的暗喻,OLE 自动化接口。同时 ADO 使用了与 DAO和 RDO相似的约定和特性,简化的语义使它更易于学习。

有关的简要概述,请参阅OLE DB 提供程序。

有关 ADO 的详细信息,请参阅 ADO 2.0 初步。

DAO 和 RDO
为了向后兼容性,对于现存的工程,Visual Basic 将继续支持 DAO 和 RDO。

详细信息 有关 RDO 编程的详细信息,请参阅使用远程数据对象和 RemoteData 控件。有关 DAO 编程的详细信息,请参阅对远程数据库使用数据访问对象。也可以在Microsoft DAO 3.51中找到完整的 DAO 参考。

从 RDO 升级到 ADO
如果 ADO 能够提供基于 RDO 的应用程序可用的优点,请考虑升级。有关平台之间差异的讨论以及将基于 RDO 的工程更改为 ADO 工程的指南,请参阅ADO 与 RDO 和 DAO 相比较。有关升级指南,请参阅从 RDO 2.0 转换到 ADO 2.0。

年糕 2002-04-12
  • 打赏
  • 举报
回复
还是用ADO+SQLServer好
coaco 2002-04-11
  • 打赏
  • 举报
回复
居然有人认为ADO速度比DAO快,有没有搞错?
ADO的高效是因为它是更高级的封装,高效并不见得是高速
DAO相对比较成熟,BUG少,但是日后升级困难些,特别是升迁到SQL SERVER还得改ADO,但不是所有的数据库者需要做成C/S体系的,所以主要看具体情况
有的单位的数据并不多,电脑又老(如P166)什么的,这种情况下用ADO有点困难----慢啊,呵呵,但这种情况较少见.
微软强行推ADO,显然ADO方便得多,recorderset增加了不少属性
总之,用ADO----除了特殊情况 :)
ddwei2000 2002-04-11
  • 打赏
  • 举报
回复
ADO
befree 2002-04-11
  • 打赏
  • 举报
回复
用ADO也可以再用JRO来对ACCESS的MDB进行压缩和加密
DAO的功能完全可以移植
现在什么年代了
都用ADO.net和ASP.net了
还用DAO?
lapangxe 2002-04-11
  • 打赏
  • 举报
回复
当然是ADO好了喔!他是发展趋势吗,虽然现在功能还不是很强,但是够用了就好了喔!
qhq800 2002-04-11
  • 打赏
  • 举报
回复
ado
水煮蛙 2002-04-11
  • 打赏
  • 举报
回复
xiaoxiaohan (萧晓寒) 不知是否对你有所帮助http://www.csdn.net/news/newstopic/5/5243.shtml
monica918 2002-04-11
  • 打赏
  • 举报
回复
做access97的话,dao比较方便、稳定、也成熟
daryl715 2002-04-10
  • 打赏
  • 举报
回复
早晚都要淘汰的
oldsongs 2002-04-10
  • 打赏
  • 举报
回复
我觉得用ADO要好一些,毕竟它支持的数据库类型比较多,是微软为统一数据存取所发布的一个“数据中间件”。以前我也用DAO,但现在用ADO后感觉要好多了。为了方便日后的维护或修改,建议最好不要使用ADO数据控件,而采用编程的方式实现。即使现在做的是单机版,要升迁到网络版也会变得比较容易。
strip 2002-04-10
  • 打赏
  • 举报
回复
我建议项目不管大小都用ado

主要是从软件的扩展性方面考虑,一年之后,你的老板告诉你,客户数据膨胀太多,access已经不能够胜任,或者你的程序处理的数据要上网发布,这时候你要从dao迁移到ado, 完了,晚了

或者你的软件将来要引入第三方的的数据...

还是用ado吧,也许现在投入多一些
rosement 2002-04-10
  • 打赏
  • 举报
回复
对于编写数据库程序,使用DAO操作ACCESS数据库的话,ADO实在是没有办法和DAO比的。因为ADO是在OLE DB上的包装,OLE DB的特点是数据库的适用性比较好,而对于速度方面没有办法和DAO抗衡。
如果你是考虑速度方面的影响,请使用DAO,而且有关于升级与以后开发的问题,你大可不用担心,如果微软的OFFICE还要继续生产的话,ACCESS也将继续生产,而DAO也会更加完美的发展。
不要相信一些传言,自己去判断,而且学习了DAO对于你掌握ADO是非常必要的,学习了DAO特别是使用了它的SDK开发,对于以后在C语言上或其他语言上开发数据库也非常有用。
DAO是开发数据库学习的基础
zhangjinghui2008 2002-04-10
  • 打赏
  • 举报
回复
当然要选择ADO了,编起来比较顺手,而且是发展方向
push69 2002-04-09
  • 打赏
  • 举报
回复
现在都用ado,不知道还有什么别的xxO
whee 2002-04-09
  • 打赏
  • 举报
回复
ADO,兼容性好,支持网络,建议使用
招RD和QA 2002-04-09
  • 打赏
  • 举报
回复
关心一下。
Alsen 2002-04-09
  • 打赏
  • 举报
回复
ado
yelld 2002-04-09
  • 打赏
  • 举报
回复
ado好,快
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip0D Http://www.ChinaOK.net/csdn/csdn.rar0D Http://www.ChinaOK.net/csdn/csdn.exe [自解压]

加载更多回复(72)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧