VB6 数据库上的 DAO 3.6 问题

Posted

技术标签:

【中文标题】VB6 数据库上的 DAO 3.6 问题【英文标题】:Issue With DAO 3.6 on VB6 database 【发布时间】:2012-04-25 04:09:39 【问题描述】:

我目前正在尝试启动一个将 VB6 前端连接到 access 2000 数据库的数据库。在某些计算机上,我们遇到了从数据库中提取的数据未显示或未正确显示的问题。

工作的电脑似乎在系统 32 和 microsoftshared/dao 中修改了相同的 dao360.dll 日期,而不工作的电脑没有相同的修改日期。

这是导致错误的原因吗?我该如何纠正这个?还是发生了其他事情?

【问题讨论】:

您是否在无法(正确)工作的系统上遇到任何错误? 程序运行时实际上并没有出现错误。它是一个显示数据的调度程序,在显示它的计算机上正确列出程序,而在不显示任何内容的计算机上。 你能更具体地说明它没有出现在哪里吗?如果它没有出现在您的代码中,您是否尝试过调试以查看代码实际返回的内容? 你能看到 Windows 虚拟化的结果吗? 【参考方案1】:

系统上不应有两个 DLL 副本。听起来好像以前在这些系统上安装了一些设计不佳的应用程序。没有人知道这件事的全部范围。

打包为一个独立的应用程序可以使您的程序与这些创建 DLL Hell 的不良安装相隔离。遗憾的是,MDAC/DAC 和相关组件很难分离。

这是在 1998 年迁移到 ADO 的另一个原因,如果不是从那时起。虽然您不能像隔离 DAO 一样隔离 MDAC/DAC 的 ADO 相关部分,但这些库现在作为 Windows 的一部分提供。您无需部署它们,而且 Windows 中日益完善的系统文件保护机制可以保护它们免受不良安装程序的影响。


但是,提供具体帮助可能需要对正在发生的事情进行更具体和详细的​​描述,而不是“没有出现或没有正确出现”。

我将使用 DAO 创建一个最小的测试用例,以开始探索问题的真正所在(和什么)。一开始可能只是一个简单的查询,显示返回的没有数据绑定的行集。

【讨论】:

老实说,我怀疑它是否与 .dll 文件有任何关系。有机会我会发布一些代码。 嗯,这是个好消息……我猜。没有解决它,但你越来越近了。 话虽如此...我将擦除硬盘驱动器并重新开始,看看是否不能解决问题,因为计算机基本上是用来运行这个系统的。跨度> 【参考方案2】:

我建议安装最新版本的 MDAC 和 Jet。虽然 Jet 曾经是 MDAC 的一部分,但我很确定他们此时已将其放入自己的安装/更新/服务包中。也许从这里开始:http://support.microsoft.com/kb/239114

【讨论】:

以上是关于VB6 数据库上的 DAO 3.6 问题的主要内容,如果未能解决你的问题,请参考以下文章

在VB6中通过DAO优化高延迟网络上的开放访问数据库

使用 VB6 将 DAO 日期时间字段重置为空

VB6 - DAO - 存储过程

VB6/Microsoft Access/DAO 到 VB.NET/SQL Server... 有建议吗?

如何通过 VB6 使用 DAO.Relation?

如何使用与 sql server 的 DAO 连接更新 VB6 中的记录集