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

标签 c++ informix dsn unixodbc isql

我有一个使用 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/

相关文章:

php - 使用 PDO 的 odbc 通过 Windows 身份验证连接到 MSSQL 服务器实例

c++ - 以不同方式对待子类/避免代码重复

java - Hibernate 获取带有字符串前缀的下一个 ID

c++ - 如何使用多个 boost::thread 对象管理从文件描述符读取的并发。 ( boost 线程管理)

c# - 插入记录时 Informix "no such DBspace"错误

java - 生成的查询包含架构和目录名称

asp.net - DSN 到连接字符串?

c# - 是否可以在 C# 中的远程服务器上创建 DSN

c++ - ghc 7.6.3 不生成 _stub.c 和 _stub.o

c++ - 在高维 Xtensor 数组中分配