I'm currently using HSQLDB to save java data. Within theses datas, there are some Double, and some of them can be of values of NaN
(described as 0.0/0.0
in the javadoc). HSQLDB know how to handle these values in setDouble
and setFloat
of PreparedStatement
. The thing is, I have to use a Statement
object, not a precompiled stored procedure, and I just can't find a way to make it work.
If you had the tinyest hint, it would be most welcome :)
Thanks.
EDIT : Here's the bunch of code I'm using :
stmt.executeUpdate("insert into Mesh(Id, name, dimension, meshtype, totalVolume, NumberOfCoarseCell) values (identity(), "
+ "'" + name_ + "',"
+ dimension_ + "," // this value can be NaN
+ "'" + type_.toString() + "',"
+ totalVolume_ + "," // this value can be NaN
+ numberOfCoarseCells_ + ")");
With HSQLDB 1.8.x you can use (0.0e1/0.0e1) as an expression that returns NaN.
For example:
create table t (d double)
insert into t values (0.0e1/0.0e1)
For HSQLDB 2.1 and above, an property must be specified with an SQL statement:
SET DATABASE SQL DOUBLE NAN FALSE
Or as a connection property:
hsqldb.double_nan=false