我正在处理一个.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软件.
| 归档时间: |
|
| 查看次数: |
21646 次 |
| 最近记录: |