我的C ++应用程序无法连接到Informix DB服务器

时间:2010-11-03 11:29:51

标签: c++ informix dsn unixodbc isql

我使用unixODBC的应用程序(无法提供代码,因为它很长)。另外,我已经安装了isql。一切似乎都配置正确 - 驱动程序,服务器等,使用isql,我没有任何问题连接到Informix数据库。但即使我使用相同的设置,我的应用程序也无法连接。返回的错误是:

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工作正常。

如果您需要更多信息,请告诉我们。谢谢(:

2 个答案:

答案 0 :(得分:0)

要使用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),以及一些许可限制(仔细阅读许可证),以及那些包含CSDK的软件包。

答案 1 :(得分:0)

<@> @Jonathan Leffler - 是的,我已经正确安装了所有东西,问题 肯定在其他地方。我在这里回答,因为我找到了解决方案(实际上,我的同事做了)。这是非常非常愚蠢的事情......他刚刚在/usr/local/lib添加了/etc/ld.so.conf,一切都正常......

无论如何,非常感谢你的帮助(: