设为首页收藏本站Access中国
Office中国(www.office-cn.net),专业Office论坛

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

12下一页
返回列表 发新帖
查看: 3046|回复: 19

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

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

 楼主| 发表于 2012-9-11 11:02:04 | 显示全部楼层
本帖最后由 lynnwang 于 2012-9-12 21:59 编辑

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

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

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




ADO劣势
 楼主| 发表于 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:}
 楼主| 发表于 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
 楼主| 发表于 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

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

我是网通的,在浙江,论坛速度好慢呀
发表于 2012-9-11 13:21:12 | 显示全部楼层
DAO可能是不支持了,很久没见更新了.曾经红火的98现在也很少见了,都有老去的一天.
我就是看到网传ADO的优点,才弃用DAO的.但随着发展,ADO也NET了,虽还能看到些影子,但...,我是跟不上潮流了.我啥O也不用了,我想忘掉MS.我希望不管世界怎么变,真善美不能变;不管平台环境怎么变,过程属性函数方法不能变,全部在底层封装.学不起啊.我的想法很天真,其实不变也行,那是策略.

点评

access2007中的dao已经升级了,你没发现?  发表于 2012-9-11 21:19
发表于 2012-9-11 15:11:58 | 显示全部楼层
可以负责任的说:DAO和ACC在20年之内至少可以保证用,但不保证MS会更新。
人生有几个20年?做好当前的事,等我们退休了,用了20年还宝刀未老的健壮数据库架构还是留给自己的雇员和后代去升级吧。

点击这里给我发消息

发表于 2012-9-11 21:17:40 | 显示全部楼层
我喜欢用dao,相对ado,dao语法更简洁,功能更强,速度更快
但ado可直接操作mssql,dao需要通过odbc,不过即使通过odbc好象也比ado快
呵呵,乱说一通。。。
等待王站、朱总等大牛出现。。。
发表于 2012-9-12 11:02:35 | 显示全部楼层
其实吧,ACCESS有一天也会被淘汰的。
现在的平台都流行B/S了,C/S有一天要被淘汰;
现在的WEB APP飞速发展,NATIVE APP有一天要被淘汰;
现在的WEB OS初出茅庐,但云计算飞速发展将导致MAX OS\WINDOWS\ANDROID\IOS被淘汰。
但如果因为可能被淘汰就不用了,那我们这辈子就都不用学习任何东西了~~
 楼主| 发表于 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:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /6 下一条

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

GMT+8, 2018-8-14 22:23 , Processed in 0.116581 second(s), 41 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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