Vb6 Windows Server 2008上的DAO 3.6

Vb6 Windows Server 2008上的DAO 3.6,vb6,windows-server-2008,dao,Vb6,Windows Server 2008,Dao,出于历史原因,我们在两个相同的Windows 2008服务器上运行了一些遗留的vb6服务器端代码,它们使用dao 3.6访问后端MS access数据库。这已经运行了好几年,我们目前正在迁移所有代码。但是,运行代码的其中一台服务器正在变薄,因此我们需要将代码移动到新服务器,因为迁移的解决方案暂时还没有准备好。 正常工作的服务器正在运行Windwos server Web 2008 Sp1 64位。新服务器是Windows server Standard 2008 R2 Standard Sp1。

出于历史原因,我们在两个相同的Windows 2008服务器上运行了一些遗留的vb6服务器端代码,它们使用dao 3.6访问后端MS access数据库。这已经运行了好几年,我们目前正在迁移所有代码。但是,运行代码的其中一台服务器正在变薄,因此我们需要将代码移动到新服务器,因为迁移的解决方案暂时还没有准备好。 正常工作的服务器正在运行Windwos server Web 2008 Sp1 64位。新服务器是Windows server Standard 2008 R2 Standard Sp1。 在这个新服务器上运行测试时,我们开始在应用程序中进行随机冻结。有一个简单的循环,它对数据库中的每个表运行一个select查询。在添加了大量日志记录之后,调用DAO.database对象的OpenRecordset方法时,它被冻结。有时它会冻结几秒钟,有时长达10-11分钟,然后继续。正在运行的查询采用此格式,并且应全部返回0条记录:

SELECT * FROM BlahBlah WHERE WriteTime > #25 Oct 2012 10:09:43#
当直接在数据库上运行(即在Access中)时,它们返回良好。每次锁定的查询也不同。我想这可能是我们的软件特有的东西,直到我在这里找到一个非常类似的帖子,我才设法找到它(不幸的是,除了我的帖子外,没有任何回复!)

到目前为止,我唯一发现的是,它运行的服务器上的DAO360.dll版本是3.60.9704,而出现问题的服务器上的版本是3.60.9756(即Dao的更新版本)。我没有手动安装或注册任何内容,但在新服务器上安装了Access 97和Access 2003,与旧服务器相同。我还应该指出,如果我将后端代码原封不动地移动到旧服务器上,那么测试就可以正常工作,所以我很确定这不是代码


现在我知道DAO已经过时了,但在迁移后的解决方案可用并经过彻底测试之前,我一直坚持使用这个代码库,因此任何关于在何处查找的想法都是非常受欢迎的。同时,我将尝试在新服务器上手动注册3.60.9704版本,并运行更多测试,看看这是否是问题所在,但如果是…

啊哈!虽然我们只是使用DAO,而不是完整的访问,但这似乎是答案

当我进一步研究它时,代码运行的服务器是Windows2008WebServer,虽然它是64位的,但与新机器上的操作系统WindowsServer2008R2完全不同。解决方案似乎是回到服务器上的旧操作系统,而不是重新编写整个应用程序,这对我们来说很容易。
幸运的是,这只需要再运行几个月左右,因为整个过程正在重新编写。

啊哈!虽然我们只是使用DAO,而不是完整的访问,但这似乎是答案

当我进一步研究它时,代码运行的服务器是Windows2008WebServer,虽然它是64位的,但与新机器上的操作系统WindowsServer2008R2完全不同。解决方案似乎是回到服务器上的旧操作系统,而不是重新编写整个应用程序,这对我们来说很容易。 幸运的是,这只需要再运行几个月左右,因为整个过程正在重新编写