我正在尝试使用 DBD::ODBC 在 Perl 脚本 (v5.12.4) 中建立与 Informix DB 的 ODBC 连接。我已经阅读了很多文档,似乎碰壁了,希望能在这里得到一些提示。
我安装了带有空 odbcinst.ini 和 odbc.ini 文件的 unixODBC 2.2.14(不好,我知道)。我还从 IBM 的站点下载了 Informix 的 CSDK。如果我检查 DBI 的可用驱动程序,那里也列出了 Informix。
我想我的问题与使用驱动程序和 dsn 的正确信息填充 .ini 文件有关。我不确定 Informix 驱动程序在哪里,我如何引用它们或 dsn 的语法。我已经将 DBI 与 mysql 一起使用了一段时间,但 ODBC 似乎更深入,现在有点过头了。
当我尝试运行脚本进行连接时,我得到:
DBI connect........failed: [unixODBC][Driver Manager]Data source name not found, and no default driver specified (SQL-IM002) at Informix.pl line 20
如果我在帖子中遗漏了任何重要的细节,请告诉我,我会包括在内。
谢谢!
更新
我在另一篇文章中得到了一些帮助,发现 Java 和我的操作系统运行不佳,因此我无法正确安装 CSDK。所以,我删除了 Ubuntu 并安装了 SuSE。我(我希望)现在正确安装了 CSDK 并更新了 .ini 文件。附带说明一下,我无法运行 nm 来查看符号,但我确实在 /opt/IBM/informix/lib/ 目录中有几个 .so 文件,我试图在我的 odbcinst.ini 文件中引用这些文件。当我运行 isql 连接时,我得到:
[01000][unixODBC][Driver Manager]Can't open lib '/opt/IBM/informix/lib/nameofdriver.so. : file not found
你对这个有什么建议吗?我已经检查了文件中的恶意空格/字符,并且正在以 root 身份运行连接请求。任何帮助表示赞赏。谢谢!