public int executeTransaction() throws SQLException {
checkParameters();
synchronized (session) {
prepareIfRequired();
ResultRemote result = null;
ResultTransfer transfer = new ResultTransfer(null, null);
try {
result = new ResultRemote(fClient, statementSession, transfer, sqls, true);
result.next();
isQuery = result.isQuery();
if (isQuery()) {
throw JdbcException.get(SQLErrorCode.METHOD_NOT_ALLOWED_FOR_QUERY,
"sql:" + sql);
}
Value[] values = result.currentRow();
if (values == null || values.length == 0) {
return 0;
}
if (values[0] instanceof ValueInt) {
return ((ValueInt) values[0]).getInt();
}
} catch (IOException e) {
session.removeServer(e);
}
return transfer.getCounts();
}
}