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_ + ")");
You mean you need a way to write a NaN within a SQL statement? The following works for both HSQLDB and the H2 database:
However, it doesn't work for Apache Derby and PostgreSQL (I didn't test other databases).
With HSQLDB 1.8.x you can use (0.0e1/0.0e1) as an expression that returns NaN.
For example:
For HSQLDB 2.1 and above, an property must be specified with an SQL statement:
Or as a connection property: