Обсуждение: 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