设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: lynnwang
打印 上一主题 下一主题

[ADO/DAO] [讨论][经典][分享]用 DAO 还是 ADO?为什么?权威发布!

[复制链接]
跳转到指定楼层
1#
发表于 2012-9-11 10:45:52 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
用 DAO 还是 ADO?为什么?
这是很经典的问题(对于新手来说)。
牛人们如果进来,那请发表一些自己的经验给我们新手分享吧

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2012-9-11 11:02:04 | 显示全部楼层
本帖最后由 lynnwang 于 2012-9-12 21:59 编辑

重复提交了,删除了重复内容
占位2012-09-12

这里留待以后写DAO优势,ADO的劣势

DAO优势
在ACCESS中有很多ADO做不到,而这就是DAO的优势。




ADO劣势
3#
 楼主| 发表于 2012-9-11 11:45:55 | 显示全部楼层
本帖最后由 lynnwang 于 2012-9-13 17:41 编辑


今天2012-09-12才发现昨天有重复提交,论坛的网络真是老驴拉磨,管你。
而我为了提交4楼的内容,昨天我整整花了一个多小时,不过也好,占自己了沙发和板凳。
当然也要写点总结的东西。

我现在工作就是销售产品,经常用的是是SWOT分析,简单讲就是首先对自己(包括对手)产品、管理、销售手段进行内部的优劣势分析,然后再作对外部竞争环境的机会(有哪些)、威胁(在哪里)作分析,最后总结出自己的营销策略。(n年前在以前公司的每月业务会议就搞这个报表,当时我见了就烦{:soso_e119:} ,现在看来当时我是菜鸟一只——会画它但下不了金蛋)

我们学习这编码,基本上也是一个道理。这里选择ADO还是DAO,不是一句话就能下结论的,只是能给大家和自己开开窍,最后能让我们站在全局(或者站得更高一点)来看待这个问题,无招胜有招
那这里我先聊聊ADO的优势,DAO的劣势

ADO 的优势:
1.有中文资源:与VBE环境集成的中文参考文档;我当初觉得 ADO 确实好用好学,这是其中最大的一个原因吧。写代码过程,不会了按一下F1,中文的说明,中文的示例代码,你不让上手都难了。

2.对象模型容易理解:总共9个,对的,刚刚又我数了,注意,当初ADO2.1可没有“Record”“Stream”“Field”,这3个对象你也基本用不着。
你只要 Recordset 和 Connection  这两个对象基本上可以全部搞定全部数据的操作,而且ACCESS提供了CurrentProject.Connection这个很好的属性。

3.链接外部数据源:这是ADO后发者的优势 ,通过一种对象可以访问MY DQL/SQL SERVER/ORACLE任一外部数据源。这样我们学习一种对象就可以访问多种数据源了。其实对于ADO来说,MDB就外部数据源它与MY DQL/SQL SERVER/ORACLE没有区别。所以就应该没有“外部”这词。

4.待续……期待你的补充





DAO 的劣势:
1.无中文资源:全是英文,尔等新手见了就头大,这么多英文专业术语,怎么搞得懂呀。当然现在office2007和2012全是中文了,这是后话;现在学了三年的VC,参考的有大半是英文资源,这是后话,虽然现在回过头来看DAO的英文资料是小菜,但对于当初的我这确实是一座大山。

2.对象模型超复杂:40多个,刚我数一遍,把我眼都花花了,对于尔等新手还要学,晕倒。搞个数据操作,要这么对象做什么,还让不让人活呀。
尤其是 DBEngine、Workspace 两个对象到底起什么作用,不是CurrentDB就可以了吗。(这个问题一直伴随了我多年,业余编程,专业又不是这个,悟性就这么好)。
呵呵,我当初就是这么想的。因为不好学,加上书上说的这个要淘汰了,所以产生了这个东西落后过时的想法,当时还是2002,可现在VC2012还支持。

3.链接外部数据源:DAO它有两套模型库。对于外部数据源(非JET)你需要通过另外的对象模型库才能实现它,所以这时你必须学习新的对象(虽然我中有你、你中有我)。而且,MS已经从ACCESS 2007放弃它了(ODBCDirect workspaces ),只能用他访问JET,也就是只能访问ACCESS的数据库了。


4.待续……期待你的补充


写了很久了,有错别字请见凉,有时间待续……


错别字还不少,又改了两处,发现漏字一处

慢慢写吧,如发现错误,大家帮忙跟帖提出,今天就写了第3点,2012-09-13。{:soso_e147:}
4#
 楼主| 发表于 2012-9-11 12:31:33 | 显示全部楼层
恼火呀,写了半个小时,几百字提交时说没了就没了。
论坛怎么了?
还能怎样重写吧。




DAO目前不会过时,至少在2022年之前都会被MS支持的

我先分享一下我的经历:
在2002年我就开始纠结这个问题了,当时我买了【ACCESS 2002 development unleashed】,书上作者说用ADO吧,DAO会过时的会被淘汰的,这个要先进,效率好,当时认为这是老美的书,当然权威了。(当然这书的翻译也是垃圾中的战斗机,理解也可能与此有关)

可是我们现在看来DAO过时了吗,ACCESS 2010不是对DAO支持很好吗,今年是2012年,看看上月刚MS发布的产品吧
Visual Studio 2012,全部都提供DAO完整的支持,所以不要担心在未来10来年DAO不会过时,MS都会提供很好的支持。
看看下面的链接(VC++MFC),找找看
http://msdn.microsoft.com/en-us/library/bk77x1wx.aspx

你说DAO现在会过时吗?

时间关系先分享到这里,有时间再继续,牛人们都来分享一下吧。

点评

牛人是不就是怪兽 :)  发表于 2012-9-11 13:04
5#
 楼主| 发表于 2012-9-11 12:39:40 | 显示全部楼层
任何产品都会过时,只是时间的问题,但你写代码的经验是累加,不会过时,这就说,虽然你在用VBA,如果写五年VBA代码,但转到C或C++,这些经验都还是可以用的。

在上面MSDN链接中大家找到了熟悉的身影了吗。

CDaoTableDef Class
http://msdn.microsoft.com/en-us/library/5t434xff.aspx
CDaoRecordset Class
http://msdn.microsoft.com/en-us/library/8wht5w3w.aspx

大家继续来聊呀,给出相关链接也好呀

我是网通的,在浙江,论坛速度好慢呀
6#
 楼主| 发表于 2012-9-12 21:46:35 | 显示全部楼层
本帖最后由 lynnwang 于 2012-9-12 21:50 编辑

楼上的几位呀,可能都误解了我的意思了
我这里讨论不是DAO就好,还没过时。只是想大家能深入点讨论,DAO/ADO各自的优势,好真正从骨子里理解
什么时候该用 DAO 还是 ADO!

还有目前新手们的一些误解,比如我4楼的贴,只是说明了 DAO 不存在过与不过时的问题,并给出了一些证明,解除新手们心中的纠结。

其实还有很多方面DAO与ADO存在着各自优势。想这里借这个贴,一方面对DAO与ADO(含ADOX)有个总结,别一方面也想分享一下牛人们的经验,自己再充充电。

3楼有更新
{:soso_e127:}
7#
 楼主| 发表于 2012-9-13 16:42:07 | 显示全部楼层
老鬼 发表于 2012-9-12 11:02
其实吧,ACCESS有一天也会被淘汰的。
现在的平台都流行B/S了,C/S有一天要被淘汰;
现在的WEB APP飞速发展 ...

对了可以用远程虚拟云技术,(其实就虚拟技术,唉,现在什么都加个云)
还管他什么B/S,C/S,都是浮云
8#
 楼主| 发表于 2012-9-13 16:48:47 | 显示全部楼层
andymark :12楼 正解

但我现在是只要用ACCESS开发,那就用DAO,其他应用开发,就用ADO。
就是说数据源是MDB用DAO,非MDB数据源用ADO。

现在没有时间总结了,可能要过段时间了。
9#
 楼主| 发表于 2012-9-13 17:46:03 | 显示全部楼层
今天还是总结了一些……在3号楼 ADO 的优势、DAO的劣势
看看吧—

2号楼 DAO 的优势、ADO的劣势还没开始
写这个真费时间呀,期待大伙的补充呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-18 10:56 , Processed in 0.087057 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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