2010-11-03 68 views
1

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

IM00 [unixODBC][Driver Manager]Data source name not found, and no default driver specified 

所以,这里的“有趣”的一部分 - 我复制了odbc.ini文件到~/.odbc.ini/etc/odbc.ini然后一切开始工作几乎OK(“几乎”,因为该应用程序可以连接到一个DSN,但不是另一个,但它仍然是一些东西)。

另外:

[[email protected] 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 
[[email protected] xxx]$ echo $ODBCINI 
/usr/local/etc/odbc.ini 
[[email protected] xxx]$ echo $INFORMIXDIR 
/usr/informix 

INFORMIXDIR也设置正确。没有点~/.odbc.ini既不/etc/odbc.ini(实际上,第二个帮助,无关~/.odbc.ini,刚刚试了一下(:)

odbc.ini的配置是否正确,如isql工作正常

如果您需要任何更多的信息。 (

回答

0

@Jonathan Leffler - 是的,我已经正确安装了一切,问题肯定是在别的地方。我在这里回答,因为我找到了解决方案(实际上是我的一位同事)。这是非常,非常愚蠢的事情。他只是在/etc/ld.so.conf添加/usr/local/lib和一切开始正常.....

无论如何,真的感谢您的帮助(:

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 Downloads”的链接,您可以从中获取CSDK。

您还可以查看可以使用的各种Informix(Informix Dynamic Server)新版本,并免费提供一些许可限制(仔细阅读许可证),其中包括软件包中的CSDK。

+0

'isql'也unixODBC的一部分使用:'isql DSN [UID [PWD]] [options]' – 2010-11-04 10:50:44

相关问题