我有一个使用 unixODBC
的应用程序(无法提供代码,因为它很长)。此外,我还安装了 isql
。一切似乎都已正确配置 - 驱动程序、服务器等,因为使用 isql
,我可以毫无问题地连接到 Informix DB。但是我的应用程序无法连接,即使我使用相同的设置也是如此。返回的错误是:
IM00 [unixODBC][Driver Manager]Data source name not found, and no default driver specified
所以,这是“有趣”的部分 - 我将 odbc.ini
文件复制到 ~/.odbc.ini
和 /etc/odbc.ini
然后一切开始工作 几乎正常(“几乎”,因为应用程序可以连接到一个 DSN,但不能连接到另一个,但它仍然是某种东西)。
还有:
[root@xxx xxx]# odbcinst -j
unixODBC 2.3.0
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /usr/local/etc/odbc.ini
SQLULEN Size.......: 4
SQLLEN Size........: 4
SQLSETPOSIROW Size.: 2
[root@xxx xxx]$ echo $ODBCINI
/usr/local/etc/odbc.ini
[root@xxx xxx]$ echo $INFORMIXDIR
/usr/informix
INFORMIXDIR 也已正确设置。 ~/.odbc.ini
和 /etc/odbc.ini
都没有指向(实际上,第二个有帮助,与 ~/.odbc 无关。 ini
, 刚刚试了一下 (: )
odbc.ini
已正确配置,因为 isql
工作正常。
如果您需要更多信息,请告诉我。谢谢(:
最佳答案
使用 ODBC 连接到 Informix 运行程序,您需要安装 Informix ODBC 驱动程序(或者可以想象,安装 IBM Common Client 驱动程序)。要获得该驱动程序,您需要在您的计算机上安装 ClientSDK 或 CSDK 产品,或其运行时等效产品 I-Connect,然后正确配置 DSN。 Informix SQL 产品(称为 isql,因为这是主要程序名称)不使用或(因此)安装 ODBC 驱动程序;它使用 ESQL/C 连接。 (但是,转念一想,您指的是 UnixODBC 附带的 isql,而不是 Informix 产品。)
ClientSDK在没有支持的情况下以 0.00 美元的纯名义成本提供。支持更贵。 I-Connect 同上。在链接页面的 RHS 上,“技术详细信息”下是“Informix 下载”的链接,您可以从中获取 CSDK。
您还可以查看可以免费使用的各种新版本的 Informix (Informix Dynamic Server),它们有一些许可限制(仔细阅读许可),并且这些版本包括软件 bundle 中的 CSDK。
关于c++ - 我的 C++ 应用程序无法连接到 Informix DB 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4086580/