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

use*_*443 54 odbc install postgresql-9.2

我试图在使用PostgreSQL 9的Windows XP Pro上首次打开一个程序.我收到一条错误消息,上面写着:

尝试登录或创建生产数据库时遇到问题.详细信息:[Microsoft] [ODBC驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序

在我的ODBC管理器中,我有一个用户DSN和系统DSN的列表.我尝试安装一个postgres odbc驱动程序,看看是否会有所帮助,但事实并非如此.

程序文件中有一个connect.dat文件,其中包含一行"OLE DB Provider = MSDASQL".更改此条目会更改我收到的错误消息"无法找到提供程序,可能未正确安装".

我不知道要插入哪个提供程序名称以使其正常工作.我对此错误进行了广泛的研究,但无济于事.任何建议将不胜感激.

PRG*_*ony 49

  1. 参考错误:[Microsoft] [ODBC驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序.

    该错误意味着您在连接配置中指定的数据源名称(DSN)未在Windows注册表中找到.

    • ODBC驱动程序的可执行文件和链接格式(ELF)与应用程序相同非常重要.换句话说,对于32位应用程序,需要32位驱动程序,对于64位应用程序,需要64位驱动程序.

      如果这些不匹配,则可以为32位驱动程序配置DSN,并且当您尝试在64位应用程序中使用该DSN时,将找不到DSN,因为注册表在不同位置保存DSN信息取决于ELF(32位与64位).

      确保使用正确的ODBC管理员工具.在32位和64位Windows上,默认的ODBC管理员工具位于c:\Windows\System32\odbcad32.exe.但是,在64位Windows计算机上,默认值为64位版本.如果需要在64位Windows系统上使用32位ODBC管理器工具,则需要运行此处找到的工具:C:\Windows\SysWOW64\odbcad32.exe

      人们使用默认的64位ODBC管理器来配置DSN时,我看到这种情况发生了变化.认为这是一个32位的DSN.然后,当32位应用程序尝试使用该DSN进行连接时,会出现"未找到数据源...".

    • 确保DSN的拼写与ODBC管理器中已配置的DSN的拼写相匹配也很重要.错误的一个字母就是DSN不匹配所需的全部内容.

      这篇文章可能会提供一些额外的细节

      但是,它可能与您拥有的产品品牌不同; 这是使用ODBC数据源名称时遇到的一般问题.

  2. 在您的问题的OLE DB提供程序部分中,它似乎是一种类似的问题,其中应用程序无法找到指定提供程序的配置.

  • 非常感谢你做的这些!我们使用了一台可以工作的 PC 来查找原始配置,但如果没有这些路径,我将不知道要查找什么。 (2认同)

Nic*_*ick 33

出现此错误,因为我在用户DSN中使用了数据源名称而不是系统DSN 在此输入图像描述


小智 9

就我而言,它可以在x86中运行,但不能在x64中运行。

这很荒谬,但在 x64 中,必须添加以下更改才能工作:

x86 -> szDsn = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)};
x64 -> szDsn = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb, *.accdb)};
Run Code Online (Sandbox Code Playgroud)

注意添加*.accdb.


小智 8

例如,问题可能出在驱动程序名称上,而不是DRIVER={MySQL ODBC 5.3 Driver}尝试,DRIVER={MySQL ODBC 5.3 Unicode Driver}您可以从管理工具中看到驱动程序的名称

  • 这解决了我的问题。要在 32 位 Windows 计算机上查找驱动程序的确切名称和版本,请转到:“c:\Windows\System32\odbcad32.exe” 对于 64 位 Windows 计算机:“C:\Windows\SysWOW64\odbcad32.exe” 然后转到“ Driver`选项卡,你会看到`Name``Version``Company`...所以你只需要写`Name`(不需要写版本,名称已经写有版本) (3认同)

小智 6

如果您使用的是 IIS,也许您应该尝试
“应用程序池”-->“DefaultAppPool”-->“应用程序池默认值”-->“32 位应用程序激活”--> 设置 false