diff -r a4a7841ae84f -r f70e918105da src/Pure/General/sql.scala --- a/src/Pure/General/sql.scala Fri Apr 28 15:54:14 2017 +0200 +++ b/src/Pure/General/sql.scala Fri Apr 28 16:52:07 2017 +0200 @@ -211,9 +211,29 @@ /* input */ def set_bool(stmt: PreparedStatement, i: Int, x: Boolean) { stmt.setBoolean(i, x) } + def set_bool(stmt: PreparedStatement, i: Int, x: Option[Boolean]) + { + if (x.isDefined) set_bool(stmt, i, x.get) + else stmt.setNull(i, java.sql.Types.BOOLEAN) + } def set_int(stmt: PreparedStatement, i: Int, x: Int) { stmt.setInt(i, x) } + def set_int(stmt: PreparedStatement, i: Int, x: Option[Int]) + { + if (x.isDefined) set_int(stmt, i, x.get) + else stmt.setNull(i, java.sql.Types.INTEGER) + } def set_long(stmt: PreparedStatement, i: Int, x: Long) { stmt.setLong(i, x) } + def set_long(stmt: PreparedStatement, i: Int, x: Option[Long]) + { + if (x.isDefined) set_long(stmt, i, x.get) + else stmt.setNull(i, java.sql.Types.BIGINT) + } def set_double(stmt: PreparedStatement, i: Int, x: Double) { stmt.setDouble(i, x) } + def set_double(stmt: PreparedStatement, i: Int, x: Option[Double]) + { + if (x.isDefined) set_double(stmt, i, x.get) + else stmt.setNull(i, java.sql.Types.DOUBLE) + } def set_string(stmt: PreparedStatement, i: Int, x: String) { stmt.setString(i, x) } def set_bytes(stmt: PreparedStatement, i: Int, bytes: Bytes) {