Thread: BUG #3278: PSQLException when using setBinaryStream via JDBC
The following bug has been logged online: Bug reference: 3278 Logged by: jeffrey zhao Email address: jeffrey.zhao@metalogic-inc.com PostgreSQL version: 8.2.4-1 Operating system: Windows XP Description: PSQLException when using setBinaryStream via JDBC Details: When I run the following program, I got an exception as following: File file = new File("myimage.gif"); FileInputStream fis = new FileInputStream(file); PreparedStatement ps = conn.prepareStatement("INSERT INTO images VALUES (?, ?)"); ps.setString(1, file.getName()); ps.setBinaryStream(2, fis, file.length()); ps.executeUpdate(); ps.close(); fis.close(); Exception: org.postgresql.util.PSQLException: Method org.postgresql.jdbc4.Jdbc4PreparedStat ement.setBinaryStream(int, InputStream, long) is not yet implemented. at org.postgresql.Driver.notImplemented(Driver.java:728) at org.postgresql.jdbc4.AbstractJdbc4Statement.setBinaryStream(AbstractJ dbc4Statement.java:70) Is the method setBinaryStream really not yet implemented? Thanks.
On Mon, 14 May 2007, jeffrey zhao wrote: > The following bug has been logged online: > > Bug reference: 3278 > > When I run the following program, I got an exception as following: > > ps.setBinaryStream(2, fis, file.length()); > org.postgresql.util.PSQLException: Method > org.postgresql.jdbc4.Jdbc4PreparedStat > ement.setBinaryStream(int, InputStream, long) is not yet implemented. > > Is the method setBinaryStream really not yet implemented? > JDBC4 added a setBinaryStream(int, InputStream, long) method which has not been implemented yet. JDBC2 offers setBinaryStream(int, InputStream, int) which is implmented. So you'll need to cast the last parameter to an integer to make it work with the current driver. Kris Jurka