Skip to content
Snippets Groups Projects
Commit ded46bd5 authored by Peter Mount's avatar Peter Mount
Browse files

Implement UpdateCount

parent 50eb8b7d
No related branches found
No related tags found
No related merge requests found
Sun Apr 11 17:00:00 BST 1999
- getUpdateCount() now returns the actual update count (before it
simply returned 1 for everything).
- added some updates to example.basic so it would test the new update
count code.
- corrected typo in a comment in Statement.java
Mon Jan 25 19:45:00 GMT 1999 Mon Jan 25 19:45:00 GMT 1999
- created subfolders example/corba and example/corba/idl to hold the - created subfolders example/corba and example/corba/idl to hold the
new example showing how to hook CORBA and PostgreSQL via JDBC new example showing how to hook CORBA and PostgreSQL via JDBC
......
...@@ -77,6 +77,10 @@ public class basic ...@@ -77,6 +77,10 @@ public class basic
st.executeUpdate("insert into basic values (2,1)"); st.executeUpdate("insert into basic values (2,1)");
st.executeUpdate("insert into basic values (3,1)"); st.executeUpdate("insert into basic values (3,1)");
// Now change the value of b from 1 to 8
st.executeUpdate("update basic set b=8");
System.out.println("Updated "+st.getUpdateCount()+" rows");
// For large inserts, a PreparedStatement is more efficient, because it // For large inserts, a PreparedStatement is more efficient, because it
// supports the idea of precompiling the SQL statement, and to store // supports the idea of precompiling the SQL statement, and to store
// directly, a Java object into any column. PostgreSQL doesnt support // directly, a Java object into any column. PostgreSQL doesnt support
......
...@@ -10,7 +10,7 @@ import postgresql.largeobject.*; ...@@ -10,7 +10,7 @@ import postgresql.largeobject.*;
import postgresql.util.*; import postgresql.util.*;
/** /**
* $Id: Connection.java,v 1.14 1999/01/17 04:51:50 momjian Exp $ * $Id: Connection.java,v 1.15 1999/04/11 18:03:00 peter Exp $
* *
* This abstract class is used by postgresql.Driver to open either the JDBC1 or * This abstract class is used by postgresql.Driver to open either the JDBC1 or
* JDBC2 versions of the Connection class. * JDBC2 versions of the Connection class.
...@@ -321,6 +321,7 @@ public abstract class Connection ...@@ -321,6 +321,7 @@ public abstract class Connection
int fqp = 0; int fqp = 0;
boolean hfr = false; boolean hfr = false;
String recv_status = null, msg; String recv_status = null, msg;
int update_count = 1;
SQLException final_error = null; SQLException final_error = null;
if (sql.length() > 8192) if (sql.length() > 8192)
...@@ -358,6 +359,15 @@ public abstract class Connection ...@@ -358,6 +359,15 @@ public abstract class Connection
break; break;
case 'C': // Command Status case 'C': // Command Status
recv_status = pg_stream.ReceiveString(8192); recv_status = pg_stream.ReceiveString(8192);
// Now handle the update count correctly.
if(recv_status.startsWith("INSERT") || recv_status.startsWith("UPDATE")) {
try {
update_count = Integer.parseInt(recv_status.substring(1+recv_status.lastIndexOf(' ')));
} catch(NumberFormatException nfe) {
throw new SQLException("Unable to fathom update count \""+recv_status+"\"");
}
}
if (fields != null) if (fields != null)
hfr = true; hfr = true;
else else
...@@ -414,8 +424,8 @@ public abstract class Connection ...@@ -414,8 +424,8 @@ public abstract class Connection
} }
if (final_error != null) if (final_error != null)
throw final_error; throw final_error;
return getResultSet(this, fields, tuples, recv_status, 1);
//return new ResultSet(this, fields, tuples, recv_status, 1); return getResultSet(this, fields, tuples, recv_status, update_count);
} }
} }
......
...@@ -35,7 +35,7 @@ public class Statement implements java.sql.Statement ...@@ -35,7 +35,7 @@ public class Statement implements java.sql.Statement
} }
/** /**
* Execute a SQL statement that retruns a single ResultSet * Execute a SQL statement that returns a single ResultSet
* *
* @param sql typically a static SQL SELECT statement * @param sql typically a static SQL SELECT statement
* @return a ResulSet that contains the data produced by the query * @return a ResulSet that contains the data produced by the query
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment