diff options
Diffstat (limited to 'src')
3 files changed, 11 insertions, 2 deletions
diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java b/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java index 31bbaf2eece..7084887cfd7 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java @@ -243,7 +243,12 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta */ public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException { - set(parameterIndex, x.toString()); + if (x == null) + setNull(parameterIndex, Types.OTHER); + else + { + set(parameterIndex, x.toString()); + } } /* diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/Array.java b/src/interfaces/jdbc/org/postgresql/jdbc2/Array.java index f68106ee7b6..75391411527 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc2/Array.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc2/Array.java @@ -140,7 +140,7 @@ public class Array implements java.sql.Array case Types.NUMERIC: retVal = new BigDecimal[ count ]; for ( ; count > 0; count-- ) - ((BigDecimal[])retVal)[i] = ResultSet.toBigDecimal( arrayContents[(int)index++], 0 ); + ((BigDecimal[])retVal)[i++] = ResultSet.toBigDecimal( arrayContents[(int)index++], 0 ); break; case Types.REAL: retVal = new float[ count ]; diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java b/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java index 49c5f2da804..d0c07718bdb 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java @@ -251,7 +251,11 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta */ public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException { + if (x == null) { + setNull(parameterIndex, Types.OTHER); + } else { set(parameterIndex, x.toString()); + } } /* |