Received: from tele-post-20.mail.demon.net (tele-post-20.mail.demon.net [194.217.242.20]) by hub.org (8.10.1/8.10.1) with ESMTP id e7QAGwI11908 for ; Sat, 26 Aug 2000 06:16:58 -0400 (EDT) Received: from maidast.demon.co.uk ([158.152.22.37] helo=heather) by tele-post-20.mail.demon.net with smtp (Exim 2.12 #2) id 13Sd1E-000J9O-0K; Sat, 26 Aug 2000 10:16:56 +0000 Message-ID: <00a401c00f46$aa31ed60$2516989e@heather> From: "Peter Mount" To: "Patrick Goodwill" , References: Subject: Re: JDBC + large objects problem Date: Sat, 26 Aug 2000 10:56:16 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Archive-Number: 200008/165 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@retep.org.uk, me@petermount.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" To: 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. > >