Possible Bug in Informix JDBC Driver

Z

Zachi

Hi,

I'm using IBM's Informix JDBC driver 3.0JC3 (type 4 driver). I'm
seeing this weird behavior: If I'm setting a money (numeric/decimal)
field to NULL in a batch, it sometimes sets the field to the last non-
null value in the batch - or in a previous batch (that is, even with
batches of one insert I get non-null values when I'm supposed to get a
NULL). I am reading the nullls correctly from another ResultSet. If I
execute the command immediately, I do not see this effect. Here are
snippets of code to make this clearer:

ResultSet rs;
PreparedStatement p = ...("insert into ....values ?");

while (rs.hasNext()) {
...
p.setBigDecimal(i, rs.getBigDecimal(i));
...
p.addBatch();
}
p.submitBatch();

this will occasionally set wrong values for null. when I change this
to explicit setting of null:

BigDecimal b = rs.getBigDecimal(i);
if (rs.wasNull()) {
p.setNull(i, java.sql.Types.NUMERIC);
} else {
p.setBigDecimal(i, b);
}

it still get wrong results. If, however, I use p.execute() instead of
the batch it works fine.
any ideas?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top