postgres odbc连接失败

时间:2016-10-09 20:53:39

标签: postgresql odbc

我正在尝试为应用程序设置一个新的postgres odbc连接。

这是在32位Windows 7系统上完成的。我安装了最新的postgresql 9.6& psqlodbc 0905,并没有错误。当我添加odbc连接字符串并使用postgres登录测试连接时,它会失败,并显示以下错误:

  

由于初始化提供程序中的错误,测试连接失败。   由于系统错误182,无法加载指定的驱动程序:   (PostgreSQL UNICODE,C:\ Program   文件\ psqlODBC \ 0905 \ BIN \ psqlodbc35w.dll)

这是连接字符串:

  

驱动器= {的PostgreSQL   UNICODE};服务器= 127.0.0.1,端口= 5432;数据库= Postgres的;   UID = postgres的; PWD = postgres的;

然后我安装了Visual C ++可再发行包装程序版本2008和2010。重新启动该框。还是一样的问题。

Postgres + odbc +其他安装完成且没有任何错误。

这太令人沮丧了。

请..有关如何解决此问题的任何想法都会有所帮助。?!

更新:我测试了以下内容: 1.安装较旧的postgres& psdqlodbc版本 2.在开始时添加了到PATH env变量的psqlodbc路径 3.卸载独立的psqlodbc安装,并从postgresql包安装Stackbuilder以下载并安装psqlodbc组件。

所有这些都没有任何用处。

最终更新:我可以通过使用psqlodbc_09_03_0400解决此问题。无论出于何种原因,其他版本都会出现错误。

2 个答案:

答案 0 :(得分:2)

显然,根据Microsoft index错误代码,错误182表示ERROR_INVALID_ORDINAL,在this answer的帮助下,我相信意味着postgresql ODBC驱动程序正在加载另一个DLL并尝试调用其中不存在的函数。

最可能的原因是系统正在加载psqlodbc所依赖的DLL的错误版本。事实上,我发现this thread其他人遇到了同样的问题(尽管早在2005年)。

如果您安装了包含psqlodbc所依赖的DLL之一的其他软件包,或者甚至是psqlodbc的其他版本,则可能会发生这种情况。

尝试更改Windows搜索路径,将包含psqlodbc驱动程序的目录放在前面,以确认是否是这种情况。如果可行,您可能希望尝试缩小问题,直到找到确切的DLL冲突,并在可能的情况下将其删除。

您正在使用的psqlodbc软件包可能存在一些打包问题 - 如果是这种情况,您可以尝试卸载该软件包并安装早期版本。

答案 1 :(得分:1)

最终更新:我能够通过使用psqlodbc_09_03_0400来解决这个问题。无论出于何种原因,其他版本都会出现错误。