经分析,该错误的原因是所用的psqlodbc35w.dll与系统不匹配,我们的程序是win32的,但测试机器的操作系统是win64的,刚好该电脑系统没有单独32位的odbc数据源,导致程序无法通过ODBC连接到数据库
解决方案:既然程序是win32,机器是win64,那么在安装驱动时安装64位的驱动,再将32位驱动里报错的dll拷贝过去即可规避问题。
操作步骤:
1、卸载所有驱动
2、安装32位驱动,安装好后把psqlodbc35w.dll备份
3、安装64位驱动(源目录覆盖)
4、打开odbc32位数据源,点击添加,选中odbc进行配置
5、配置完成后,将目录下psqlodbc35w.dll替换为第2步保存的dll
注意:4、5步顺序不能颠倒,添加ODBC配置时必须保证dll是64位的,否则点击添加时会报193的错误,而在配置完成后,才能将dll替换为32位,否则程序执行时也会报193的错误
后续如果需要修改ODBC配置,仍然需要将dll先换成64位,改好之后再切换回32位dll
这样做之后就能将程序启动并连接数据库成功了,也不知道后续有没有其他隐藏问题。盼odbc的用户们解答