ODBCManageDataSourcesQ4、ODBCCreateDataSourceQ4 找不到 ODBCINSTGetProperties()
ODBCManageDataSourcesQ4, ODBCCreateDataSourceQ4 Could not find ODBCINSTGetProperties()
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 一起使用。
因此,我可以在 Linux 上的命令行成功连接到系统 DSN 和 运行 SQL 语句以使用 Db2。
我的问题与 GUI 有关:ODBCManageDataSourcesQ4 和 ODBCCreateDataSourceQ4,它们报告 "Could not find 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 配置驱动程序。
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 一起使用。 因此,我可以在 Linux 上的命令行成功连接到系统 DSN 和 运行 SQL 语句以使用 Db2。
我的问题与 GUI 有关:ODBCManageDataSourcesQ4 和 ODBCCreateDataSourceQ4,它们报告 "Could not find 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 配置驱动程序。