我正在尝试使ODBC与IIB 10一起使用,但是我的节点退出时在调用state.select时没有响应。 我相信我的ODBC设置有问题。 系统日志不显示任何错误,调试器在该状态下崩溃。选择
这是我的代码:
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仅包含文本“开始”,该捕获永远不会运行
我的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
答案 0 :(得分:0)
尝试将属性setThrowExceptionOnDatabaseError
设置为true。
state.setThrowExceptionOnDatabaseError(true);
如果在执行此语句期间发生数据库错误,则该行为由'throwExceptionOnDatabaseError'属性的值确定。如果设置为true(默认值),则会引发异常,如果在try / catch块中运行,则可以捕获该异常