ODBCManageDataSourcesQ4,ODBCCreateDataSourceQ4找不到ODBCINSTGetProperties
()
ubuntu 16.04.2 x64 unixODBC 2.3.4 使用apt-get install安装unixodbc和unixpdbc-dev软件包。 ODBCManageDataSourcesQ4和ODBCCreateDataSourceQ4(unixODBC-Gui-Qt 1.0.1)
我手动编辑了/etc/odbcinst.ini和/etc/odbc.ini,为我的DB2环境添加了驱动程序和系统DSN详细信息。 我正在将unixODBC连接到DB2,这与isql一起成功运行。 所以我可以成功连接到system-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数据服务器驱动程序)。
答案 0 :(得分:0)
检查sourceforge快照中的源代码。 从文件odbcinstQ4 / CDataSourceNamesFileModel.cpp,它读取:
- 这依赖于所选择的具有可行设置的驱动程序 图书馆。 *可行我们的意思是它实现 ODBCINSTGetProperties。
所以答案似乎是IBM没有在Db2驱动程序中提供相关的钩子,以允许GUI工具ODBCManageDataSourcesQ4,ODBCCreateDataSourceQ4运行。有必要通过文本文件而不是使用GUI来配置驱动程序。