linux - ODBCManageDataSourcesQ4、ODBCCreateDataSourceQ4 找不到 ODBCINSTGetProperties()

标签 linux ubuntu unixodbc

ODBCManageDataSourcesQ4、ODBCCreateDataSourceQ4 找不到 ODBCINSTGetProperties()

ubuntu 16.04.2 x64 unixODBC 2.3.4 使用 apt-get 安装安装了 unixodbc 和 unixpdbc-dev 包。 ODBCManageDataSourcesQ4 和 ODBCCreateDataSourceQ4 (unixODBC-Gui-Qt 1.0.1)

我手动编辑了/etc/odbcinst.ini 和/etc/odbc.ini 来为我的 DB2 环境添加驱动程序和系统 DSN 详细信息。 我正在将 unixODBC 连接到 DB2,这可以成功地与 isql 一起使用。 因此,我可以成功连接到系统-DSN,并在 Linux 上的命令行中成功运行 SQL 语句以使用 Db2。

我的问题与 GUI 有关:ODBCManageDataSourcesQ4 和 ODBCCreateDataSourceQ4,它们报告“找不到 ODBCINSTGetProperties()”

ODBCManageDataSourcesQ4 和 ODBCCreateDataSourceQ4 都显示已注册的 DB2 驱动程序,但它们无法配置它,因为 odbcinst.ini SETUP 行库似乎没有 ODBCINSTGetProperties() 方法。

/etc/odbcinst.ini 有:

[DB2]
Description = IBM DB2 Driver
Driver = /opt/ibm/db2/V11.1.2.2/lib64/libdb2.so.1
Setup = /opt/ibm/db2/V11.1.2.2/lib64/libdb2cfg.so.1
FileUsage = 1
DontDLClose = 1

[ODBC]
Trace=Yes
TraceFile=/tmp/unixodbc.trc.log
Pooling=No

我搜索了/opt/ibm/db2/V11.1.2.2/lib64 中的所有文件,但没有找到任何提到 ODBCINSTGetProperties() 的文件,所以我的问题是这是否必须由外部提供(例如,由编写它的人提供) ),或者 unixODBC 是否期望它由驱动程序提供(在本例中为 IBM DB2 数据服务器驱动程序)。

最佳答案

在 sourceforge 的快照中检查了源代码。 从文件 odbcinstQ4/CDataSourceNamesFileModel.cpp 中,它显示为:

  • This relies upon the selected driver having a viable setup library. By * viable we mean that it implements ODBCINSTGetProperties.

所以答案似乎是IBM没有在Db2驱动中提供相关的hook来让GUI工具ODBCManageDataSourcesQ4、ODBCCreateDataSourceQ4进行操作。有必要通过文本文件而不是使用 GUI 配置驱动程序。

关于linux - ODBCManageDataSourcesQ4、ODBCCreateDataSourceQ4 找不到 ODBCINSTGetProperties(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46321077/

相关文章:

linux - int 0x80 是 linux 汇编程序中唯一使用的中断号吗?

php - 使用 NetBeans 调试 PHP?

php - 即使在 ubuntu 中安装 curl 后,curl 扩展也没有显示在 php.ini 中

linux - 我如何在 linux 中解析这个字符串?

mysql - Asterisk 无法使用 odbc 连接器连接到数据库

php - 从 Linux 上的 PHP 连接到 MS Access 远程 .mdb 文件

linux - UC首先递归所有文件

linux - 如何在 ssh 中查找 linux 服务器上已用的内存

c - 文件打开指针

php - 无法连接到 iSeries odbc