Hi try this:
File file = new File("myimage.gif");
FileInputStream fis = new FileInputStream(file);
byte[] theByteArray = new byte[fis.available()];
fis.read(theByteArray);
PreparedStatement ps = con.prepareStatement("insert insert into images values (?,?)");
ps.setString(1,file.getName());
ps.setBytes(2, theByteArray);
ps.execute();
con.commit();
ps.close();
fis.close();
TJM
----- Original Message -----
Sent: Thursday, October 05, 2000 12:59 PM
Subject: [INTERFACES] wrong documentation and others .....
Hi all.
I have several days working with LargeObject and postgres 7.0.2 and I have found many problems. In the first time the postgresql doc is wrong, in chapter 58 of PosgreSQL tutorial (JDBC Interfaces) it repot who to work with Large Object and give code that is wrong:
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();
PreparedStatement ps = con.prepareStatement("select oid from images where name=?");
ps.setString(1,"myimage.gif");
ResultSet rs = ps.executeQuery();
if(rs!=null) {
while(rs.next()) {
InputStream is = rs.getBinaryInputStream(1);
// use the stream in some way here
is.close();
}
rs.close();
}
ps.close();
InputStream ARE NOT SUPPORTED in JDBC implementation ¡¿?¡ and "getBinaryInputStream()" really is "getBinaryStream()". I think that it is very serious. The other method (that I know) is using LargeObjectAPI, but this fail every 9 times of PreparedStatement of setObject() sentence ¡¡¡ and when use LargeObjectManager as in source examples. (I send other messages to list)
Has PostgreSQL any way to work WELL with LargeObject.?
Please reply me.
Cheers, Gabi.
--
Gabriel López Millán
Facultad de Informática -Universidad de Murcia
30001 Murcia - España (Spain)
Telf: +34-968-364644 E-mail: gabilm@dif.um.es