Fwd: Large Objects (please help)

Поиск
Список
Период
Сортировка
От Peter T Mount
Тема Fwd: Large Objects (please help)
Дата
Msg-id 5.1.0.14.0.20011008150257.02651bf8@mail.retep.org.uk
обсуждение исходный текст
Ответы Re: Fwd: Large Objects (please help)
Список pgsql-jdbc
I'm forwarding this to the jdbc list.

Peter

>Hi Peter,
>
>I am trying to insert and/or select from Postgres a gif image by using
>the Large Object type.   I am writing a Java client and middle tier to a
>Postgres db backend using your JDBC driver and I have hit an issue with
>what your documantation shows and the exceptions I am seeing when I run
>a simple comand line program.
>
>here is the java code I am running:
>
>....
>   File file = new File("...(some path).../tomcat.gif");
>   FileInputStream fis = new FileInputStream(file);
>   PreparedStatement ps = db.prepareStatement("insert into image values
>(?,?)");
>   ps.setString(1,file.getName());
>   //ps.setObject(2,fis,java.sql.Types.LONGVARBINARY);
>   ps.setBinaryStream(2,fis, file.length());
>   ps.executeUpdate();
>   ps.close();
>   fis.close();
>....
>
>The code is almost verbatim from your documentation.
>"image" is a table  containing a image name and oid attributes.  I have
>tried both the statements,  ps.setBinaryStream(2,fis, file.length())
>and  ps.setObject(2,fis,java.sql.Types.LONGVARBINARY).  The first
>statement produces a compile time error :
>
>main.java:70: setBinaryStream(int,java.io.InputStream,int) in
>java.sql.PreparedStatement cannot be applied to
>(int,java.io.FileInputStream,long)
>   ps.setBinaryStream(2,fis, file.length());
>
>The JDBC API confuses me a little.  Why doesn't the JDBC interface
>define a long for this argument?  After all, we are dealing with big
>byte streams.  Hmm.
>
>The second statement, ps.setObject(2,fis,java.sql.Types.LONGVARBINARY),
>which I thought would be a good substitute produces a runtime exception:
>
>Unknown Types value.
>  at
>org.postgresql.jdbc2.PreparedStatement.setObject(PreparedStatement.java:492)
>
>  at
>org.postgresql.jdbc2.PreparedStatement.setObject(PreparedStatement.java:498)
>
>  at main.main(main.java:69)
>
>Does your driver fully implement the JDBC API?  LONGVARBINARY  is a
>valiid java.sql data type.  Maybe I have an old version of your driver.
>
>Here is my environment:
>PostgreSQL 7.0.3 on i686-pc-linux-gnu, compiled by gcc 2.96
>jdbc7.0-1.2.jar
>java full version "1.4.0-beta2-b77"
>uname -a
>Linux localhost.localdomain 2.4.2-2 #1 Sun Apr 8 20:41:30 EDT 2001 i686
>unknown
>
>Any help would be appreciated.  Thank you.
>
>Cheers,
>Brian Buck



В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Barry Lind
Дата:
Сообщение: Re: flames!
Следующее
От: Dave Harkness
Дата:
Сообщение: Re: Fwd: Large Objects (please help)