Re: Does PG's JDBC support prepared statements at all?

From: "Thomas O'Dowd" <tom(at)nooper(dot)com>
To: "Dr(dot) Evil" <drevil(at)sidereal(dot)kz>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Does PG's JDBC support prepared statements at all?
Date: 2001-10-21 02:37:29
Message-ID: 20011021113729.V7183@beast.uwillsee.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc pgsql-patches

On Sat, Oct 20, 2001 at 11:14:22PM -0000, Dr. Evil wrote:
>
> There is a bunch of documentation for prepared statements in PG's
> JDBC, it seems that the only thing prepared statements do is throw
> exceptions.
>
> Here's some code I'm trying:
>
> String newvalue = "This is a new value";
> int accountnumber = 54;
> String qstring = "UPDATE foo SET message = '?' WHERE number = ?";
> PreparedStatement st = db.prepareStatement(qstring);
> st.setString(1, newvalue);
> st.setInt(2, accountnumber);
> st.execute();
> st.clearParameters();
> st.close();
>
> and I always get a Parameter index out of range error, which seems
> impossible. Any idea what's going on?

You shouldn't quote the ? for the string. By calling the setString()
method, it will add the quotes for you. So I guess what is happening is
that the preparedstatement parser ignores quoted question marks and just
finds 1 variable, when you call setstring on 1 it sets the number= part,
and then when you call setInt(2) you are getting the index out of range.
The proper qstring should be:

"UPDATE foo SET message = ? WHERE number = ?"

Cheers,

Tom.
--
Thomas O'Dowd. - Nooping - http://nooper.com
tom(at)nooper(dot)com - Testing - http://nooper.co.jp/labs

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Gunnar Rønning 2001-10-21 03:24:33 Re: [PATCHES] Ant configuration
Previous Message Dr. Evil 2001-10-20 23:14:22 Does PG's JDBC support prepared statements at all?

Browse pgsql-patches by date

  From Date Subject
Next Message Gunnar Rønning 2001-10-21 03:24:33 Re: [PATCHES] Ant configuration
Previous Message Dr. Evil 2001-10-20 23:14:22 Does PG's JDBC support prepared statements at all?