我正在尝试在使用PostgreSQL 9的Windows XP Pro上首次打开程序。我收到一条错误消息:
尝试登录或创建时遇到问题 生产数据库。详细信息:[Microsoft] [ODBC驱动程序管理器]数据 未找到源名称且未指定默认驱动程序
在我的ODBC管理器中,我有一个用户DSN和系统DSN的列表。我尝试安装一个postgres odbc驱动程序,看看是否会有所帮助,但事实并非如此。
程序文件中有一个connect.dat文件,其中一行显示“OLE DB Provider = MSDASQL”。更改此条目会更改我收到的错误消息“无法找到提供程序,可能未正确安装”。
我不知道要插入哪个提供程序名称以使其正常工作。我对此错误进行了广泛的研究,但无济于事。任何建议都将不胜感激。
答案 0 :(得分:43)
参考错误: [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不匹配所需的一切。
Here is an article that may provide some additional details
但是,它可能与您拥有的产品品牌不同;这是使用ODBC数据源名称时遇到的一般问题。
在提及问题的OLE DB提供程序部分时,它似乎是一种类似的问题,其中应用程序无法找到指定提供程序的配置。
答案 1 :(得分:28)
答案 2 :(得分:3)
问题可能来自驱动程序名称,例如而不是DRIVER={MySQL ODBC 5.3 Driver}
尝试DRIVER={MySQL ODBC 5.3 Unicode Driver}
您可以从管理工具中看到驱动程序的名称
答案 3 :(得分:3)
我使用以下数据驱动测试得到了这个:
Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)
问题是上面的驱动程序只有32位。我已将visual studio testsettings文件切换到64位,以测试仅64位的应用程序。
在testsettings文件中切换回32位修复了问题。
答案 4 :(得分:2)
就我而言,它可以在 x86 中使用,但不能在 x64 中使用。
这很荒谬,但是在x64中,必须先添加以下更改,然后才能起作用:
x86 -> szDsn = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)};
x64 -> szDsn = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb, *.accdb)};
请注意添加了*.accdb
。
答案 5 :(得分:1)
在ODBC管理器工具中检查确切的驱动程序名称。按Windows键+ R,然后:
C:\Windows\System32\odbcad32.exe
在32位系统上C:\Windows\SysWOW64\odbcad32.exe
在64位系统上就我而言,应该是Microsoft Access Driver (*.mdb, *.accdb)
而不是Microsoft Access Driver (*.mdb)
。
答案 6 :(得分:0)
我尝试了上述操作,但发现我的问题是我使用了|。以DSN的名义(我有多个ODBC连接器-每个数据库一个-确保我不会合并数据)
我替换了| (管道)带有_,现在一切正常。
我试图从Alteryx调用SQL Server。
答案 7 :(得分:0)
按照此处的说明http://help.loftware.com/pages/viewpage.action?pageId=27099554,必须先安装Microsoft Access Database Engine 2010 Redistributable,然后才能安装Excel驱动程序以使用要从perl使用的无DSN连接。
答案 8 :(得分:0)
如果您使用的是IIS,也许您应该尝试
“应用程序池”->“ DefaultAppPool”->“应用程序池默认值”
->“ 32位应用程序激活”->设置为假