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

时间:2013-11-26 20:43:35

标签: 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

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

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

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

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

感谢。

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

C:\Windows\SysWoW64\cscript.exe //NoLogo filepath\xyz.vbs

现在正在工作。
那么问题是如何使用 SysWoW64 中的ODBC运行vbs而不是 system32 ...

2 个答案:

答案 0 :(得分: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软件。

答案 1 :(得分:0)

请尝试以下操作:

转到以下路径:

C:\Windows\SysWOW64\odbcad.exe

双击并弹出窗口:

  1. 转到系统DSN

  2. 添加

  3. 现在在Oracle

  4. 中选择Oraclient11g_home 1
  5. 现在再次弹出一个包含以下字段:

    数据源名称:PQALN07(数据库名称)

    描述:PQALN07

    TNS服务名称:PQALN07(数据库名称)

    用户ID:风险(架构名称)

  6. 通过添加上述DSN,您的问题将得到解决。

  7. 现在使用宏运行你的VB代码,这次你不会得到任何错误。