VB6 中的 ADODB.Connection - 打开方法失败并出现运行时错误“2147221164 (80040154)”
Posted
技术标签:
【中文标题】VB6 中的 ADODB.Connection - 打开方法失败并出现运行时错误“2147221164 (80040154)”【英文标题】:ADODB.Connection in VB6 - Open Method fails with Runtime Error '2147221164 (80040154)' 【发布时间】:2016-07-25 14:14:41 【问题描述】:这是我正在从事的项目中开始发生的事情,到目前为止我无法找出根本原因。
这在我这边没有任何改变就停止了工作,自从我上次从事该项目以来,我所知道的唯一变化是磁盘发生故障(曾经是安装了一些应用程序的 E: 驱动器)。 操作系统是 Windows Server 2003。
下面的错误:
Runtime Error
我要添加到项目中的库如下:
Visual Basic 应用程序 Visual Basic 运行时对象和过程 Visual Basic 对象和过程 OLE 自动化 Microsoft CDO for Windows 2000 库 Microsoft 脚本运行时 Windows 脚本宿主对象模型 Microsoft 数据绑定集合 VB6 (SP4) Microsoft ActiveX 数据对象 2.8 库对象oConn的声明和实例化方式如下:
-
Dim oConn AS ADODB.Connection
设置 oConn = 新 ADODB.Connection
在 VB 项目中没有引用被标记为 MISSING。
我也尝试了后期绑定,但没有成功。我尝试使用regsrv32.exe重新注册msado15.dll,但没有任何乐趣。
我真的不知道这里,我认为由于磁盘故障导致某些依赖项不再满足,但鉴于IDE提供的一些细节,我不知道如何调查。
谢谢
【问题讨论】:
您是否重新创建了 UDL?该错误表明它仍在寻找 E:。 嗨,吉姆。 E:驱动器现在再次存在,我从头开始重新创建磁盘,并将旧引用(以及我检查的 UDL 有效并连接)放在那里。我认为缺少的是曾经安装在那里的一些软件可能满足一些嵌套引用。 单击“调试”按钮时您会看到什么?我想知道这是否可能是 MDAC 问题。 吉姆·休伊特。我认为你在正确的轨道上。就在昨天,我一直在互联网上搜索这个,我发现了一个名为 ComponentChecker 的 Microsoft 工具,它应该检查 MDAC 是否损坏。该工具将安装的版本报告为 UNKNOWN,几乎可以肯定,这是库中的损坏。该工具为我提供了一些不是预期版本的 DLL 的名称,因此我将尝试从工作机器上复制它们。但我不确定这是否是正确的路径。 你也可以下载here 【参考方案1】:这个问题没有简单的答案。我发现并且在@Jim Hewitt 的评论中也提出了建议,即 Windows Server 2003 上的 MDAC 已损坏。组件检查器实际上无法识别 MDAC 的版本,它是该版本 Windows 中的嵌入式组件。 因此,总而言之,整个 Windows 安装已损坏(不知道这是如何发生的),并且 Visual Basic 6 无法正常工作。解决方案是设置另一台机器。
【讨论】:
以上是关于VB6 中的 ADODB.Connection - 打开方法失败并出现运行时错误“2147221164 (80040154)”的主要内容,如果未能解决你的问题,请参考以下文章
PHP中的COM Adodb.Connection - 绝对存在的字段上的未知字段名称
正确使用CurrentProject.Connection进行ADODB.Connection?
VBA - ADODB.Connection - 使用参数和检索受影响的记录数