Thread: blob setBinaryStream
Do you need to create a transaction to set blobs? con.setAutoCommit(false); FileInputStream fis = new FileInputStream(file); PreparedStatement ps = con.prepareStatement("update= userpreferences set image='?' and time=? where user='?'"); Logger.log("Setting Binary Stream"); ps.setBinaryStream(1, fis, length); ps.setInt(2, (int)new java.util.Date().getTime()); ps.setString(3, user); ps.executeUpdate(); ps.close(); fis.close(); con.commit(); con.setAutoCommit(true) ; When Set Binarystream calls the setInt method, it throws a SQLExceptionParameter index out of range. Does anyone know what this could be?
The stack trace I get with this is: Parameter index out of range. at org.postgresql.jdbc2.PreparedStatement.set(PreparedStatement.java:658) at org.postgresql.jdbc2.PreparedStatement.setInt(PreparedStatement.java:210) at org.opensimpx.server.RequestHandler.storeBackgroundImage(RequestHandler.java:628) at org.opensimpx.server.RequestHandler.recieve(RequestHandler.java:597) at org.opensimpx.server.RequestHandler.run(RequestHandler.java:215) at java.lang.Thread.run(Thread.java:479) Any help with this would be greatly appreciated. Thanks in advanced. Matt Matt Fair wrote: > Do you need to create a transaction to set blobs? > con.setAutoCommit(false); > FileInputStream fis = new FileInputStream(file); > PreparedStatement ps = con.prepareStatement("update= > userpreferences set image='?' and time=? where user='?'"); > Logger.log("Setting Binary Stream"); > ps.setBinaryStream(1, fis, length); > ps.setInt(2, (int)new java.util.Date().getTime()); > ps.setString(3, user); > ps.executeUpdate(); > ps.close(); > fis.close(); > con.commit(); > con.setAutoCommit(true) ; > > When Set Binarystream calls the setInt method, it throws a > SQLExceptionParameter index out of range. > Does anyone know what this could be? > > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html >
On Mon, 24 Sep 2001 09:46:49 -0500, you wrote: > PreparedStatement ps = con.prepareStatement("update= >userpreferences set image='?' and time=? where user='?'"); I guess the single quotes around the question mark placeholder are the cause of your problem. Regards, René Pijlman <rene@lab.applinet.nl>