unixodbc - IIB 节点退出且无响应 MYSQL ODBC 数据源
问题描述
我正在尝试让 ODBC 与 IIB 10 一起工作,但我的节点在调用 state.select 时没有响应而退出。我认为我的 ODBC 设置有问题。系统日志不显示任何错误,并且调试器在 state.select 上崩溃
这是我的代码:
try {
outP = new PrintWriter(new BufferedWriter(new FileWriter("/tmp/myfile.txt", true)));
outP.println("Start");
MbSQLStatement state = createSQLStatement( "MYSQL",
"SET OutputRoot.XMLNS.integer[] = PASSTHRU('SELECT * FROM " + "test" + "');" );
state.select( inAssembly, newAssembly );
} catch (Exception e) {
outP.println(e);
outP.flush();
outP.close();
}
结果:myfile.txt 仅包含文本“Start”,捕获从未运行
我的 ODBC 设置
$odbcinst -j
unixODBC 2.3.4
DRIVERS............: /home/ds/iib-10.0.0.13/ie02/etc/odbcinst.ini
SYSTEM DATA SOURCES: /home/ds/iib-10.0.0.13/ie02/etc/odbc.ini
FILE DATA SOURCES..: /home/ds/iib-10.0.0.13/ie02/etc/ODBCDataSources
USER DATA SOURCES..: /home/ds/iib-10.0.0.13/server/ODBC/unixodbc/odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
[MySQL]
Description=MySQL driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc8w.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
TraceFile = /tmp/sql.log
[MYSQL]
Description=MYSQL DB
Driver=MySQL
Database=test
Server=127.0.0.1
Port=3306
解决方案
尝试将属性设置setThrowExceptionOnDatabaseError
为 true。
state.setThrowExceptionOnDatabaseError(true);
如果在执行此语句期间发生数据库错误,则行为由“throwExceptionOnDatabaseError”属性的值确定。如果设置为 true(默认值),则会抛出异常,如果在 try/catch 块中运行,则可以捕获该异常
推荐阅读
- javascript - Tensorflow.js 中预训练模型的预处理图像
- google-sheets-api - 从 ChargeBee 提取订阅数据到谷歌电子表格
- discord - 检查文本是否在某些东西中-Discord Js
- r - 如何取生成条件组的意思?
- mysql - MySQL 错误代码:“字段列表”中的 1054 列“ID”未知
- powerbi - Power BI - 将列值的总和除以列数
- c# - 将列标题添加到数据表
- javascript - 赛普拉斯 OPENSSL_internal:NO_START_LINE
- java - 使用 TestNG 测试 Spring bean 的销毁方法时出错
- ubuntu - 在 ubuntu 上安装 Composer