【问题标题】:VBS - Error opening connection using ADODBVBS - 使用 ADODB 打开连接时出错
【发布时间】:2014-04-18 05:25:20
【问题描述】:

我在尝试使用 VBScript 中的 ADODB 对象连接我的 oracle 数据库时遇到问题,代码在 Win7 机器上运行,但在 WinXP 上不运行,我试图搜索错误代码,在帮助下下载了 sdk文件来寻找一些东西,但我没有发现任何有用的东西。

这是代码示例:

ConnectionString = "DSN=(Oracle in OraClient11g_home1);UID=username ;PWD=password ;DBQ=myDatabase"
Set objCon = CreateObject("ADODB.Connection")
objCon.Open ConnectionString 'the error occurs in this line

我不知道winXP机器的连接字符串是否必须不同......我真的不知道如何解决这个问题,有人可以帮助我吗?

错误跟踪信息:

"Error #-2147024770: 
Error reported by: ADODB.Connection
Help File: 
Topic ID: 1240640"

【问题讨论】:

  • XP机器上是否安装了Oracle驱动?
  • C:\Users\>net helpmsg 126 找不到指定的模块。错误行上方的行没有工作。 XP 有 ado 2.7,而 Vista 有 6。
  • @aphoria 是的,驱动程序已安装,我可以使用 sqlplus、pl/sql developer 等连接数据库。
  • 仍然找不到 dll。使用windbg或ntsd(非家庭版已经安装)看看是哪一个。

标签: vbscript adodb


【解决方案1】:
-2147024770 = FFFFFFFF8007007E

解码 0x8007nnnn 错误

带有设施代码 7 的 HResults 表示 HResult 包含 Windows 的错误代码。您必须查找 Windows 的错误代码而不是 HResult。

解码 0x8007007e。 0x 表示它是一个十六进制数,8 表示错误,前 7 表示它是 windows 错误,其余数字 7e 是实际的 windows 错误。

要查找错误,我们需要十进制格式。启动计算器(开始 - 所有程序 - 附件 - 计算器)并选择查看菜单 - 科学,然后选择查看菜单 - 十六进制。输入 7e。然后查看菜单 - 十进制。它将显示 126。

启动命令提示符(开始 - 所有程序 - 附件 - 命令提示符)并键入

net helpmsg 126

它会说

The specified module could not be found.

或在 winerror.h 中查找

//
// MessageId: ERROR_MOD_NOT_FOUND
//
// MessageText:
//
// The specified module could not be found.
//
#define ERROR_MOD_NOT_FOUND              126L

要查看发生了什么,请在 ntsd 中启动您的程序。

启动命令提示符。

类型

md c:\symbols
set _NT_SYMBOL_PATH=srv*C:\tmp*http://msdl.microsoft.com/download/symbols;c:\symbols

然后(将其从记事本更改为您的程序)

ntsd -g -o c:\windows\notepad.exe

有点意思

ntsd -g -o wscript "c:\folder\script.vbs"

然后等待错误。

【讨论】:

  • 我正在尝试执行此操作,但在尝试运行脚本时收到此消息:Symbol search path is: *** Invalid ***
猜你喜欢
  • 2015-11-04
  • 2012-10-12
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
相关资源
最近更新 更多