diff options
Diffstat (limited to 'src/interfaces')
-rw-r--r-- | src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java | 29 | ||||
-rw-r--r-- | src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java | 44 |
2 files changed, 47 insertions, 26 deletions
diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java b/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java index e4c50f13af9..b2b68d50a55 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java @@ -260,7 +260,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta { // if the passed string is null, then set this column to null if(x==null) - set(parameterIndex,"null"); + setNull(parameterIndex,Types.OTHER); else { StringBuffer b = new StringBuffer(); int i; @@ -312,9 +312,12 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta */ public void setDate(int parameterIndex, java.sql.Date x) throws SQLException { - SimpleDateFormat df = new SimpleDateFormat("''yyyy-MM-dd''"); - set(parameterIndex, df.format(x)); - + if (null == x){ + setNull(parameterIndex,Types.OTHER); + }else{ + SimpleDateFormat df = new SimpleDateFormat("''yyyy-MM-dd''"); + set(parameterIndex, df.format(x)); + } // The above is how the date should be handled. // // However, in JDK's prior to 1.1.6 (confirmed with the @@ -337,7 +340,11 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta */ public void setTime(int parameterIndex, Time x) throws SQLException { + if (null == x){ + setNull(parameterIndex,Types.OTHER); + }else{ set(parameterIndex, "'" + x.toString() + "'"); + } } /** @@ -350,11 +357,15 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta */ public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException { - SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - df.setTimeZone(TimeZone.getTimeZone("GMT")); - StringBuffer strBuf = new StringBuffer("'"); - strBuf.append(df.format(x)).append('.').append(x.getNanos()/10000000).append("+00'"); - set(parameterIndex, strBuf.toString()); + if (null == x){ + setNull(parameterIndex,Types.OTHER); + }else{ + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + df.setTimeZone(TimeZone.getTimeZone("GMT")); + StringBuffer strBuf = new StringBuffer("'"); + strBuf.append(df.format(x)).append('.').append(x.getNanos()/10000000).append("+00'"); + set(parameterIndex, strBuf.toString()); + } } /** diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java b/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java index 1936845a92b..ab5601b026c 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java @@ -267,7 +267,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta { // if the passed string is null, then set this column to null if(x==null) - set(parameterIndex,"null"); + setNull(parameterIndex,Types.OTHER); else { // use the shared buffer object. Should never clash but this makes // us thread safe! @@ -323,14 +323,16 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta */ public void setDate(int parameterIndex, java.sql.Date x) throws SQLException { - SimpleDateFormat df = (SimpleDateFormat) tl_df.get(); - if(df==null) { - df = new SimpleDateFormat("''yyyy-MM-dd''"); - tl_df.set(df); - } - - set(parameterIndex, df.format(x)); - + if(null == x){ + setNull(parameterIndex,Types.OTHER); + } else { + SimpleDateFormat df = (SimpleDateFormat) tl_df.get(); + if(df==null) { + df = new SimpleDateFormat("''yyyy-MM-dd''"); + tl_df.set(df); + } + set(parameterIndex, df.format(x)); + } // The above is how the date should be handled. // // However, in JDK's prior to 1.1.6 (confirmed with the @@ -353,7 +355,11 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta */ public void setTime(int parameterIndex, Time x) throws SQLException { - set(parameterIndex, "'" + x.toString() + "'"); + if (null == x){ + setNull(parameterIndex,Types.OTHER); + } else { + set(parameterIndex, "'" + x.toString() + "'"); + } } /** @@ -365,13 +371,16 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta * @exception SQLException if a database access error occurs */ public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException - { - SimpleDateFormat df = (SimpleDateFormat) tl_tsdf.get(); - if(df==null) { - df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - df.setTimeZone(TimeZone.getTimeZone("GMT")); - tl_tsdf.set(df); - } + { + if (null == x){ + setNull(parameterIndex,Types.OTHER); + } else { + SimpleDateFormat df = (SimpleDateFormat) tl_tsdf.get(); + if(df==null) { + df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + df.setTimeZone(TimeZone.getTimeZone("GMT")); + tl_tsdf.set(df); + } // Use the shared StringBuffer synchronized(sbuf) { @@ -383,6 +392,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta // The above works, but so does the following. I'm leaving the above in, but this seems // to be identical. Pays to read the docs ;-) //set(parameterIndex,"'"+x.toString()+"'"); + } } /** |