Re: binary data

From: Barry Lind <blind(at)xythos(dot)com>
To: Uwe Kubosch <donv(at)crusaders(dot)no>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: binary data
Date: 2003-03-03 03:35:25
Message-ID: 3E62CD7D.5000303@xythos.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Uwe,

Can you submit a test case that demonstrates the problem? I use the
bytea type in my apps without problems, so there must be something
different about how you are doing this.

thanks,
--Barry

Uwe Kubosch wrote:
> Hi all!
>
> I'm trying to store image data in a postgresql 7.3.2 data using the 7.3.2
> jdbc3 drivers. The table "tfile" contains an integer field "id" and a bytea
> field "content".
>
> I store the image with code similar to this:
>
> InputStream is;
> PreparedStatement statement;
> int rowsAffected;
>
> is = new FileInputStream("image.png");
> statement = getConnection().prepareStatement("UPDATE tfile SET content=?
> WHERE id=4");
> getConnection().setAutoCommit(false);
> statement.setBinaryStream(1, is, MAX_FILE_SIZE);
> rowsAffected = statement.executeUpdate();
> getConnection().commit();
> getConnection().setAutoCommit(true);
> is.close();
> }
>
> This works fine, and the size of the "content" field in the database is
> equal to the size of the file, 4342 bytes.
>
> I fetch the image back from the database with code similar to this:
>
> String query;
> ResultSet resultSet;
>
> query = "SELECT content FROM tfile WHERE id=4";
> resultSet = null;
>
> try {
> boolean more;
>
> resultSet = executeTheQuery(query);
> more = resultSet.next();
>
> if (more) {
> InputStream is;
>
> is = resultSet.getBinaryStream("content");
> setContent(is);
> }
> } catch (SQLException anSQLException) {
> }
>
> I've read and re-read the documentation, and this should work. However,
> checking the size of the content InputStream shows that the size is 5527
> bytes instead of 4342. Doing a compare with the original image reveals what
> seems like unicode character sequences. For example "å" is replaced with
> "Ã¥".
>
> Is this correct behaviour? Must I convert binary data from a bytea field?
>
> If I have missed something obvious, I apologize, but I hope someone can help
> me, please. Any help is greatly appreciated.
>
>
> With kind regards,
> Uwe Kubosch
>
> _________________________________________
> Uwe Kubosch
> Adviser eCommerce
> ICQ#: 71437007
> More ways to contact me: http://wwp.icq.com/71437007
> _________________________________________
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
>

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dirk Bromberg 2003-03-03 06:45:42 Re: Connection Pool
Previous Message Rafal Kedziorski 2003-03-02 19:55:40 Re: Connection Pool