在Windows Server 2003 SP2上的VB6中使用ADODB时出现致命错误

在Windows Server 2003 SP2上的VB6中使用ADODB时出现致命错误,vb6,windows-server-2003,virtualization,adodb,fatal-error,Vb6,Windows Server 2003,Virtualization,Adodb,Fatal Error,我们有一个遗留应用程序(VB6),它在旧的Windows Server 2003机箱上运行良好,并且已经运行多年。最近,我们不得不将其移动到不同的物理位置,在这样做的过程中,我们通过虚拟化克隆了盒子,并将其放置在其他位置 理论上,这两种环境应该是相同的 但是,在新框中,当调用ADODB.Recordset的RecordCount方法时,应用程序会失败。我应该说,我可以成功地读取ADODB.RecordSet.Properties.Count属性,之前的行中没有问题 事件查看器报告以下内容: 事件

我们有一个遗留应用程序(VB6),它在旧的Windows Server 2003机箱上运行良好,并且已经运行多年。最近,我们不得不将其移动到不同的物理位置,在这样做的过程中,我们通过虚拟化克隆了盒子,并将其放置在其他位置

理论上,这两种环境应该是相同的

但是,在新框中,当调用
ADODB.Recordset
RecordCount
方法时,应用程序会失败。我应该说,我可以成功地读取
ADODB.RecordSet.Properties.Count
属性,之前的行中没有问题

事件查看器报告以下内容:

事件类型:错误事件源:应用程序错误事件 类别:(100)事件ID:1000日期:2012年9月28日时间:11:15:27 用户:不适用计算机:APP01说明:故障应用程序 Control.exe,版本1.0.0.6,故障模块ntdll.dll, 版本5.2.3790.4789,故障地址0x0002c6e4


我只能想象在虚拟化环境中使用ADODB会有什么问题。有什么想法吗?

该问题是由于在设置连接时在“ODBC数据源管理器”中使用了不同的驱动程序造成的

以前我们使用的是Microsoft ODBC for Oracle驱动程序,但是当我们在新服务器上手动设置此连接时,我们错误地选择了另一个连接(由Oracle客户端提供)

解决方案是确保使用完全相同的驱动程序


ntdll.dll中的错误听起来像是这个框中的其他错误。我想不出为什么调用像RecordCount这样的ADO属性会自己导致一个。当CursorType不正确时,此属性更有可能返回不需要的值,等等,而不是爆炸。ADO在VM中运行良好。