ODBC lib指定的驱动程序无法加载

时间:2012-04-30 12:36:32

标签: linux odbc drivers openedge progress-db

我正在尝试安装ODBC驱动程序,而且我遇到了砖墙。

[root@Crux pkg]# isql -v
[IM002][DataDirect][ODBC lib] Data source name not found and no default driver specified
[ISQL]ERROR: Could not SQLConnect
[root@Crux pkg]# isql -3 SUBS2A
[IM003][DataDirect][ODBC lib] Specified driver could not be loaded
[ISQL]ERROR: Could not SQLConnect

我的INI文件如下;

ODBCINST.INI

[ProgressOpenEdge]
Description = ODBC for Progress OpenEdge
Driver = /usr/dlc/odbc/lib/pgoe1023.so
;Setup = /usr/dlc/odbc/lib/pgoe1023.so
FileUsage = 1

的odbc.ini

[SUBS2A]
Driver = ProgressOpenEdge
Description = Fail
DatabaseName = SUBS
PortNumber = 4000
HostName = 192.168.1.2
LogonID = SYSPROGRESS
Password = SYSPROGRESS
APILevel = 1
ConnectFunctions = YYN
CPTimeout = 60
DriverODBCVer = 03.50
FileUsage = 0
SQLLevel = 0
UsageCount = 1
ArraySize = 50
DefaultLongDataBuffLen = 2048
DefaultIsolationLevel = REPEATABLE READ
StaticCursorLongColBuffLen = 4096
[ODBC]
InstallDir = /usr/dlc/odbc
Trace = 0
TraceFile = odbctrace.out
TraceDll = /usr/dlc/odbc/lib/odbctrac.so
UseCursorLib = 0

我已经确保通过ldd正确加载所有依赖项。

更新

输出:strace isql -v http://pastebin.com/tXFY4vVt

输出:strace isql -3 SUBS2A http://pastebin.com/Yu5e54mR

输出:/tmp/odbctrace.out http://pastebin.com/0kgvNdWv

由于

2 个答案:

答案 0 :(得分:2)

您应该检查您的ODBC驱动程序是否可加载:

ldd /usr/dlc/odbc/lib/pgoe1023.so

可能加载程序无法找到依赖项共享对象 so 库),这些对象在您的环境中尚不可用或者在不同版本中可用。

我建议您根据系统添加/usr/dlc/odbc/lib/或其他路径:

  • 在环境变量LD_LIBRARY_PATH
  • 为linux加载程序添加特定文件,例如/etc/ld.so.conf.d/odbc-pgoe.conf使用行/usr/dlc/odbc/lib/并使用ldconfig刷新(最佳选项)

如果问题仍然存在,请报告ldd命令输出。也许预期的库文件名与您的Linux发行版完全不匹配。

更新 last comment of this post确认ld.so.conf文件是使驱动程序正常工作的解决方案。你应该测试它。

此论坛引用similar situation。也许该解决方案可以解决您的问题。

如果仍然错误,请报告strace isql -3 SUBS2A的输出。您可能会在写入错误消息之前得到有关错误的库加载,文件访问权限问题或其他任何问题的线索。

答案 1 :(得分:0)

(1)您可以在使用之前检查驱动程序是否正确。

$ ivtestlib /usr/dlc/odbc/lib/pgoe1023.so

(2)加载驱动程序时查看日志 在控制台中,

tail -f /path/to/SysLog_OrOtherName.file

在另一个控制台中,

odbc.sh