[Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序:Wierd问题

Man*_*ian 1 vbscript odbc qtp

我正在处理一个.vbs文件,其中我使用下面的代码行连接到数据库,而不是运行一些查询.

Set cm = CreateObject("ADODB.Command")
cm.ActiveConnection = "Driver={Microsoft ODBC for Oracle};Server ="+sInst+"; UID="+sUID+";PWD="+sPWD
cm.CommandType = 1 
cm.CommandText = sSQL 
cm.Execute()
Set cm = Nothing
Run Code Online (Sandbox Code Playgroud)

对我来说奇怪的是,当我将这些行复制到QTP并从QTP运行时,它运行正常.但是当运行.vbs文件(通过双击和从cmd),它给我以下错误:

[Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序

我还有其他机器,它的工作正常.我尽力验证机器中的所有东西,但我没有得到它.

我感谢任何想法/帮助/建议.

谢谢.

快速更新:
由于vbs无法正常工作,我尝试使用googled并使用以下行创建批处理文件:

C:\Windows\SysWoW64\cscript.exe //NoLogo filepath\xyz.vbs
Run Code Online (Sandbox Code Playgroud)

它现在正在工作.
所以问题是如何使用SysWoW64中的 ODBC运行vbs 而不是来自system32 ...?

小智 6

64位Windows上的进程可以是纯32位或纯64位.
默认情况下,64位Windows在64位引擎中执行您的vbscript,该引擎无法调用任何32位DLL.

64位VBScript将使用64位ODBC,它只能调用64位Oracle软件(如果已安装).
32位VBScript将使用32位ODBC,它只能调用32位Oracle软件(如果已安装).

正如您所发现的,大多数内置Windows程序的32位版本在64位Windows上远离视图.您必须自己显式运行32位版本的ODBC管理员或CSCRIPT.
根据您的描述,您似乎在您的计算机上安装并配置了32位Oracle软件.通常需要单独安装和配置64位Oracle软件.