Skip site navigation (1) Skip section navigation (2)

Re: JDBC + large objects problem

From: "Peter Mount" <peter(at)retep(dot)org(dot)uk>
To: "Patrick Goodwill" <goodwill(at)cheese(dot)stanford(dot)edu>, <pgsql-interfaces(at)postgresql(dot)org>
Subject: Re: JDBC + large objects problem
Date: 2000-08-26 09:56:16
Message-ID: 00a401c00f46$aa31ed60$2516989e@heather (view raw or flat)
Thread:
Lists: pgsql-interfaces
Streams are not supported yet, hence the message.

There are various ways around this, all of which are discussed recently in
the list archives.

Peter

--
Peter T Mount  peter(at)retep(dot)org(dot)uk, me(at)petermount(dot)com
Homepage: http://www.retep.org.uk Contact details: http://petermount.com
PostgreSQL JDBC: http://www.retep.org.uk/postgres/
Java PDF Generator: http://www.retep.org.uk/pdf/
----- Original Message -----
From: "Patrick Goodwill" <goodwill(at)cheese(dot)stanford(dot)edu>
To: <pgsql-interfaces(at)postgresql(dot)org>
Sent: Friday, August 25, 2000 10:25 PM
Subject: [INTERFACES] JDBC + large objects problem


> I'm trying to use JDBC and BLOBS to store large amounts of text in a
> database.  I get a strange error when I try to use the conventional JDBC
> interface... it comes out with a SQL Exceptions of:
>
> "InputStream as parameter not supported"
>
> for the code:
>
>     Connection conn = pool.getConnection();
>     PreparedStatement pstmt =
> conn.prepareStatement("INSERT INTO t" + book
>       + "_data (author_id, title, text,
>                                       type) VALUES ( ?, ?, ?, ?)");
>     pstmt.setInt(1, userId);
>     pstmt.setString(2, title);
>     InputStream textStream = stringToStream(text);
>     pstmt.setBinaryStream(3, textStream, text.length());
>     pstmt.setInt(4, type);
>     pstmt.executeUpdate();
>     pstmt.close();
>
>
> ... with some helper functions....
>
>     private InputStream stringToStream(String string) {
> byte[] bytes = string.getBytes();
> ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
> return (InputStream) stream;
>     }
>
>     private String      streamToString(InputStream stream) {
> try {
>     int length = stream.available();
>     byte[] bytes = new byte[length];
>     stream.read(bytes);
>     return new String(bytes);
> } catch (IOException e) {
>     System.out.println("No Stream");
> }
> return null;
>     }
>
> with an abbreviated schema of....
>
> >> \d t1_data
>                                Table "t1_data"
>  Attribute |  Type   |                       Modifier
> -----------+---------+----------------------------------------------------
---
>  data_id   | integer | not null default
>                                nextval('t1_data_data_id_seq'::text)
>  author_id | integer |
>  title     | text    |
>  text      | oid     |
>  type      | integer |
>  time      | time    |
> Index: t1_data_pkey
>
>
> .... using postgresql 7.0 and the newest JDBC driver from retep.org.uk
>
>
> if ya'll have any ideas why it does what it does, i just might kiss your
> feet.  =)
>
> -Patrick.
>
>


In response to

pgsql-interfaces by date

Next:From: Cedar CoxDate: 2000-08-27 06:04:15
Subject: Re: JDBC problem
Previous:From: Peter MountDate: 2000-08-26 09:54:43
Subject: Re: JDBC and java.sql.Timestamp

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group