Thread: query string on a prepared statement
Using pg80b1.308.jdbc3.jar got the following: (worked with pg74.215.jdbc3.jar) Code: results = stmt.executeQuery("SELECT currval('LoginLog_LoginLogID_seq')"); Stack Trace: org.postgresql.util.PSQLException: Can't use query methods that take a query string on a PreparedStatement. at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:203) at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:205) postgresql version: 8.0beta5 Thanks, Roger
Roger Niederland wrote: > Using pg80b1.308.jdbc3.jar got the following: (worked with > pg74.215.jdbc3.jar) > > Code: > results = stmt.executeQuery("SELECT currval('LoginLog_LoginLogID_seq')"); > > Stack Trace: > org.postgresql.util.PSQLException: Can't use query methods that take a > query string on a PreparedStatement. As it says, you can't use executeQuery(String) on a PreparedStatement. Use it on a Statement created via Connection.createStatement() instead. The JDBC spec requires that PreparedStatement throw an exception in this case. Older drivers did not follow the spec. -O
Similar code work previously on DB2, Mysql and earlier versions of the released postgresql jdbc drivers. So I assumed that this was a driver problem. Thanks, for the quick response! > Roger Niederland wrote: > >> Using pg80b1.308.jdbc3.jar got the following: (worked with >> pg74.215.jdbc3.jar) >> >> Code: >> results = stmt.executeQuery("SELECT currval('LoginLog_LoginLogID_seq')"); >> >> Stack Trace: >> org.postgresql.util.PSQLException: Can't use query methods that take a >> query string on a PreparedStatement. > > As it says, you can't use executeQuery(String) on a PreparedStatement. Use > it on a Statement created via Connection.createStatement() instead. > > The JDBC spec requires that PreparedStatement throw an exception in this > case. Older drivers did not follow the spec. > > -O > >