适合初学者的 ADO 示例
Posted
技术标签:
【中文标题】适合初学者的 ADO 示例【英文标题】:ADO examples for a beginner 【发布时间】:2012-04-10 07:03:07 【问题描述】:在使用 MS 访问方面,我仍然是新手。 我试图通过使用记录集对象而不是使用 DLookups 来改善自己。我的计划是在 MS access 2007 中使用这些来读取和操作数据。
从我做的大量阅读中,我无法判断是使用 ADO 还是 DAO?
我的访问数据库用于存储我们在办公室管理的某些系统的用户帐户信息。这将仅由少数管理员用于维护用户信息
我很难找到能够保持任何 .consistency 的可靠示例或“最佳实践”。此外,任何类型的文档都需要费力地阅读为什么要使用和使用理论,然后才能...
这是用什么....之类的文章。
我预计这些工具将永远存在于 MS Access 中,因为我在这个办公室可以使用的只有这些。将来我想让数据连接字符串对 MS Access 以外的工具更开放,比如 SQLite....
但是 MS Access 是我所追求的。我一直在使用 DLookups 从表中获取数据,但这开始感觉很幼稚,并且不适合从 1 个特定行中检索超过 1 列的数据。
任何人都可以直接向某种白痴指南 ADO 或 DAO。我不是专业的程序员,我想尽快完成一些编码。这个办公室的一切都要做:昨天。我没有时间阅读关于为什么一个比另一个更好的长篇大论。
【问题讨论】:
DAO 是 Access 原生的,在大多数情况下是首选。 我同意 Remou。我尽我所能使用 DAO。我只在 ADO 做我需要而 DAO 不能做的事情时才使用它。 【参考方案1】:萨沃
这是一个非常敏感的话题。 :) 你会在这个问题上感到复杂。
首先可以参考这篇旧文章(去年更新)
http://msdn.microsoft.com/en-us/library/ms810810.aspx
它在底部声明 DAO 已正式过时,并暗示永远不会有 64 位版本。在此日期之后,我还没有看到任何其他文章证实了 DAO 的命运。
大多数程序员一开始都是从 DAO 开始,然后逐渐转向 ADO。至少这是我在回答问题时在不同论坛上看到的。由于一个原因,DAO 曾一度被回避。担心它会过时并最终被 ADO 取代。但是,当 DAO 库使用 Access 2007 进行更新时,焦点又回到了 DAO。然而为时已晚。大多数有经验的开发人员已经习惯了 ADO。即使在今天,他们中的大多数在论坛上回答问题时仍然使用 ADO 提供代码。我不怪他们,因为他们已经使用 ADO 很长时间了。恕我直言,DAO 应该会在不久的将来在 ADO 之前无法使用。
我记得前段时间与一位 SO 成员讨论过类似的事情,即使用 ADO 还是 DAO。 我什至与 7 位不同的 MVP 讨论过这个问题,如果你是 MVP 并且是 vbforums.com 的成员,那么你可以访问这个帖子http://www.vbforums.com/group.php?do=discuss&discussionid=50&pp=10查看讨论。在 DAO 工作或包含在 MS Access 中之前,您肯定可以使用它。 :) 然而,上述讨论中的共识是不使用 DAO。
如果您仍想使用 DAO那么请继续阅读 :)
到目前为止,两者都有其优点和缺点。我建议您查看 MSDN 中的这个旧链接,它可以让您对差异有一个公平的了解。
主题:选择 ADO 或 DAO 来使用 Access 数据库
链接:http://msdn.microsoft.com/en-us/library/aa164825%28v=office.10%29.aspx
HTH
席德
【讨论】:
似乎 ADO 有一个比 DAO 更好的选择。你能提供一些 ADO 的简单例子吗?我看到很多代码片段,但很少得到体面的评论? 抱歉,ADO 仅适用于您使用 ADP 的情况。 DAO 是 MS Access 的首选选项。 @Siddartha 从推荐 ADO 的 Microsoft Access MVP 中至少生成一个可访问的引用。 Access 开发人员在大多数情况下使用 DAO。 让我们continue this discussion in chat 我不是 MVP,我也不声称是,但我的观点是,除非您使用 ADP,否则 DAO 应该是您的默认选择,并且只有在 DAO 无法执行时才应使用 ADO所需的任务。我不相信您甚至可以将 ADO 用于报告。您可能不得不改用 SQL 传递查询。【参考方案2】:正如每个人都指出的那样,关于这个主题存在各种意见,而微软自己的文档围绕技术翻转也无济于事。
但是,如果您刚刚开始,请让自己轻松一点,只需使用 DAO:它是 Access 的原生技术,它运行良好、快速、简单,而且开箱即用,无需摆弄参考 (它甚至可以在 64 位访问中工作,not that you would want to use that though)。
使用 ADO,您需要在代码中手动管理连接字符串,它的行为有时与 DAO 略有不同,这只会增加混乱。
我会明确地说,在学习成为更好的 Access 开发人员的背景下,您可以放心地忽略 ADO:您可能永远不会错过它。 我还没有找到绝对需要在我自己的代码中使用它的地方,而且几年来我一直在 Access 中开发相当大的应用程序(50,000 多行 VBA)。
您引用的 MSDN 页面没有讨论 Access 下的开发,它讨论了 Windows 下广大程序员可以使用哪些数据访问技术。 确实,您不会在其他编程平台上使用 DAO,比如在 C++ 或 .Net 中构建应用程序时(尽管 DAO blows ADO.Net in terms of raw speed)
MDAC 不再支持 Jet 也是事实,但那是因为:1)Jet 默认集成在所有版本的 Windows 中,2)ACE 是一个新的驱动程序,它在 Access2007/2010 中取代了 Jet,并添加了新的功能,同时仍与 Jet 兼容。
在 Access 本身中,DAO 仍然是从代码对数据库进行操作的默认且最集成的方式,并且在 Microsoft 真正用 Access 本身中的其他东西替换 DAO 之前,您不必担心,它不像您的应用会突然停止工作。
开始
我真的建议你买一本好看的厚书,比如:
Access 2010 Programmer's Reference(有一个PDF version)。 Access 2010 VBA Programming Inside/Out(也在PDF version)当然,您不需要阅读所有内容,但它们几乎包含您需要的所有内容,包括每章的数据库示例,您可以通过浏览本书并获得更多内容来慢慢改进和发现功能按照自己的节奏深入。
【讨论】:
以上是关于适合初学者的 ADO 示例的主要内容,如果未能解决你的问题,请参考以下文章