我正在尝试为应用程序设置一个新的postgres连接。
这是在32位Windows 7系统上完成的.我安装了最新的postgresql 9.6 & psqlodbc 0905,没有出现错误。当我添加odbc连接字符串并测试postgres登录的连接性时,它会失败,出现以下错误:
由于初始化提供程序中的错误,测试连接失败。由于系统错误182:(PostgreSQL UNICODE,C:\Program Files\psqlODBC\0905\bin\psqlodbc35w.dll),无法加载指定的驱动程序
下面是连接字符串:
UNICODE};Server=127.0.0.1;Port=5432;Database=postgres;Driver=;PostgreSQL Uid=postgres;Pwd=postgres;
然后,我在2008年和2010年之后安装了Visual C++可再发行包程序版本。重新启动了盒子。还是一样的问题。
Postgres + odbc +其他安装是完整的,没有任何错误。
这太让人沮丧了。
请..。任何关于如何解决这个问题的建议都是有帮助的。?!
Update:我已经测试了以下内容: 1.安装了旧的postgres & psdqlodbc版本2。在path env变量中添加了psqlodbc路径。卸载独立的psqlodbc安装,并从postgresql包安装Stackbuilder以下载和安装psqlodbc组件。
所有这些都没有任何用处。
最终更新:I能够通过使用psqlodbc_09_03_0400修复这个问题。不管出于什么原因,其他版本一直在抛出错误。
发布于 2016-10-10 01:02:00
显然,根据错误代码的Microsoft索引,error 182意味着ERROR_INVALID_ORDINAL
,在这个答案的帮助下,我相信这意味着postgresql驱动程序正在加载另一个DLL,并试图调用其中不存在的函数。
造成这种情况的最可能原因是系统加载了psqlodbc所依赖的DLL的错误版本。事实上,我在这条线上发现了其他人也有同样的问题(尽管早在2005年)。
如果您已经安装了包含psqlodbc所依赖的一个DLL的其他包,甚至可能是psqlodbc的另一个版本,则可能会发生这种情况。
尝试更改windows搜索路径,将包含psqlodbc驱动程序的目录放在前面,以确认是否是这种情况。如果这样做有效,您可能希望缩小问题,直到您能够找到确切的DLL冲突,如果可能的话,删除它。
您正在使用的psqlodbc包也可能存在一些打包问题--如果是这样的话,您可以尝试卸载这个包并安装一个更早的版本。
发布于 2016-10-11 21:35:00
最后更新:我能够通过使用psqlodbc_09_03_0400修复这个问题。不管出于什么原因,其他版本一直在抛出错误。
https://stackoverflow.com/questions/39948427
复制相似问题