diff options
Diffstat (limited to 'src/interfaces/jdbc/postgresql/jdbc2')
| -rw-r--r-- | src/interfaces/jdbc/postgresql/jdbc2/PreparedStatement.java | 2 | ||||
| -rw-r--r-- | src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java | 4 | ||||
| -rw-r--r-- | src/interfaces/jdbc/postgresql/jdbc2/Statement.java | 26 |
3 files changed, 26 insertions, 6 deletions
diff --git a/src/interfaces/jdbc/postgresql/jdbc2/PreparedStatement.java b/src/interfaces/jdbc/postgresql/jdbc2/PreparedStatement.java index 7a835a8193..ef18bbaa9a 100644 --- a/src/interfaces/jdbc/postgresql/jdbc2/PreparedStatement.java +++ b/src/interfaces/jdbc/postgresql/jdbc2/PreparedStatement.java @@ -312,7 +312,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta */ public void setDate(int parameterIndex, java.sql.Date x) throws SQLException { - SimpleDateFormat df = new SimpleDateFormat("''"+connection.getDateStyle()+"''"); + SimpleDateFormat df = new SimpleDateFormat("''yyyy-MM-dd''"); set(parameterIndex, df.format(x)); diff --git a/src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java b/src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java index 54e1081a8e..2be4ddba5f 100644 --- a/src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java +++ b/src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java @@ -388,7 +388,7 @@ public class ResultSet extends postgresql.ResultSet implements java.sql.ResultSe String s = getString(columnIndex); if(s==null) return null; - SimpleDateFormat df = new SimpleDateFormat(connection.getDateStyle()); + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); try { return new java.sql.Date(df.parse(s).getTime()); } catch (ParseException e) { @@ -445,7 +445,7 @@ public class ResultSet extends postgresql.ResultSet implements java.sql.ResultSe TimeZone zone = TimeZone.getDefault(); zone.setRawOffset(TZ); String nm = zone.getID(); - s = s.substring(0,18) + nm; + s = s.substring(0,19) + nm; try { java.util.Date d = df.parse(s); return new Timestamp(d.getTime()); diff --git a/src/interfaces/jdbc/postgresql/jdbc2/Statement.java b/src/interfaces/jdbc/postgresql/jdbc2/Statement.java index 427efe14df..4c9c8c9e01 100644 --- a/src/interfaces/jdbc/postgresql/jdbc2/Statement.java +++ b/src/interfaces/jdbc/postgresql/jdbc2/Statement.java @@ -6,6 +6,7 @@ package postgresql.jdbc2; // postgresql.jdbc1 package. import java.sql.*; +import java.util.Vector; /** * A Statement object is used for executing a static SQL statement and @@ -27,6 +28,7 @@ public class Statement implements java.sql.Statement SQLWarning warnings = null; // The warnings chain. int timeout = 0; // The timeout for a query (not used) boolean escapeProcessing = true;// escape processing flag + private Vector batch=null; /** * Constructor for a Statement. It simply sets the connection @@ -325,17 +327,35 @@ public class Statement implements java.sql.Statement public void addBatch(String sql) throws SQLException { - throw postgresql.Driver.notImplemented(); + if(batch==null) + batch=new Vector(); + batch.addElement(sql); } public void clearBatch() throws SQLException { - throw postgresql.Driver.notImplemented(); + if(batch!=null) + batch.removeAllElements(); } public int[] executeBatch() throws SQLException { - throw postgresql.Driver.notImplemented(); + if(batch==null || batch.isEmpty()) + throw new SQLException("The batch is empty."); + + int size=batch.size(); + int[] result=new int[size]; + int i=0; + this.execute("begin"); // PTM: check this when autoCommit is false + try { + for(i=0;i<size;i++) + result[i]=this.executeUpdate((String)batch.elementAt(i)); + this.execute("commit"); // PTM: check this + } catch(SQLException e) { + this.execute("abort"); // PTM: check this + throw new SQLException("The result "+i+" \""+batch.elementAt(i)+"\" aborted."); + } + return result; } public java.sql.Connection getConnection() throws SQLException |
