Microsoft -ODBC驱动程序管理器 - 找不到数据源名称,未指定默认驱动程序



我已经在VC 中开发了一个应用程序,以连接到Oracle DB并访问其数据。它需要创建一个DSN,并需要设置我在VC 代码中以编程方式完成的一些环境变量,例如路径,Oracle_home,TNS_ADMIN等。我已经更新了所需的注册表条目。我已经在计算机上安装了32位Oracle Instant客户端。

http://download.oracle.com/otn/nt/instantclient/121020/instantclient-basic-nt-nt-12.1.0.2.0.2.0.ziphttp://download.oracle.com/otn/nt/instantclient/121020/instantclient-odbc-nt-12.1.0.2.0.2.0.zip

我使用Win32选项作为Windows 7 64位机器上的目标平台遵守并构建了应用程序EXE。此EXE在Windows 7 64位机器上正常工作,我能够使用sqldriverConnect()成功地使DB连接。

但是,当我在Windows 32位计算机上进行相同的设置时,例如安装32位Oracle Instant Client,设置一些环境变量,例如Path,Oracle_home,TNS_ADMIN等,更新所需的注册表条目并尝试运行相同的应用程序EXE(在64位使用,机器),这给出以下错误:

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

请建议解决方案。

您在哪里定义了ODBC数据源?您必须单独这样做

对于64位使用%SYSTEMROOT%system32odbcad32.exe(通常为c:windowssystem32odbcad32.exe

和32位使用%SYSTEMROOT%SysWOW64odbcad32.exe(通常为c:WindowsSysWOW64odbcad32.exe

感谢您的回复。

无论如何我已经解决了问题。

正如我前面提到的那样,我正在创建DSN并为DSN编程更新注册表条目,注册表路径对于64位机器应该有所不同,对于32位机器,则不同。

在64位机器上,DSN注册表路径是:

[HKEY_LOCAL_MACHINE SOFTWORD WOW6432NODE odbc odbc.ini]

在32位机器上,DSN注册表路径是:

[HKEY_LOCAL_MACHINE SOFTWORD odbc odbc.ini]

在32位机器的注册表中进行DSN注册表条目后,这解决了我的问题。

最新更新