|
From: <mla...@us...> - 2003-05-17 15:38:54
|
Update of /cvsroot/dbunit/dbunit/src/java/org/dbunit/database/statement
In directory sc8-pr-cvs1:/tmp/cvs-serv26040/src/java/org/dbunit/database/statement
Modified Files:
PreparedBatchStatement.java SimplePreparedStatement.java
Log Message:
Fix for bug #736967 ("Wrong scale for numeric value") and Informix interval problem (TBC).
I modified the way DbUnit get/set values from/to JDBC driver. So instead of using ResultSet.getObject(), DbUnit now use the ResultSet.getXXX() (getString(), getLong(), etc) method that corresponds to the JDBC datatype reported by the driver. I have done the same modification for PreparedStatement.setObject() calls.
Index: PreparedBatchStatement.java
===================================================================
RCS file: /cvsroot/dbunit/dbunit/src/java/org/dbunit/database/statement/PreparedBatchStatement.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** PreparedBatchStatement.java 31 Mar 2003 19:48:40 -0000 1.9
--- PreparedBatchStatement.java 17 May 2003 15:38:52 -0000 1.10
***************
*** 57,77 ****
}
! // Special BLOB handling
! if (dataType == DataType.CLOB)
! {
! _statement.setObject(++_index, dataType.typeCast(value),
! DataType.LONGVARCHAR.getSqlType());
! return;
! }
!
! // Special CLOB handling
! if (dataType == DataType.BLOB)
! {
! _statement.setObject(++_index, dataType.typeCast(value),
! DataType.LONGVARBINARY.getSqlType());
! return;
! }
!
! _statement.setObject(++_index, dataType.typeCast(value), dataType.getSqlType());
}
--- 57,61 ----
}
! dataType.setSqlValue(value, ++_index, _statement);
}
Index: SimplePreparedStatement.java
===================================================================
RCS file: /cvsroot/dbunit/dbunit/src/java/org/dbunit/database/statement/SimplePreparedStatement.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** SimplePreparedStatement.java 31 Mar 2003 19:48:38 -0000 1.9
--- SimplePreparedStatement.java 17 May 2003 15:38:52 -0000 1.10
***************
*** 59,79 ****
}
! // Special BLOB handling
! if (dataType == DataType.CLOB)
! {
! _statement.setObject(++_index, dataType.typeCast(value),
! DataType.LONGVARCHAR.getSqlType());
! return;
! }
!
! // Special CLOB handling
! if (dataType == DataType.BLOB)
! {
! _statement.setObject(++_index, dataType.typeCast(value),
! DataType.LONGVARBINARY.getSqlType());
! return;
! }
!
! _statement.setObject(++_index, dataType.typeCast(value), dataType.getSqlType());
}
--- 59,63 ----
}
! dataType.setSqlValue(value, ++_index, _statement);
}
|