Re: Array paramiters

From: Pete Lewin-Harris <pete(at)kinomi(dot)com>
To: ben sagal <bsagal(at)gmail(dot)com>
Cc: Andreas Joseph Krogh <andreak(at)officenet(dot)no>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Array paramiters
Date: 2007-06-05 14:55:21
Message-ID: 46657959.1080206@kinomi.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

If I undestand you correctly you're looking for something like (in
pseudo-non-working-code):

int[] num = new int[]{1,2,3};
PreparedStatement ps = new PreparedStatement(
"SELECT * FROM items WHERE id IN ?");
ps.setArray(num);
ps.executeQuery();

If this is the case, then I'm pretty sure your answer's no. I've wanted
this a few times and haven't found anything. Your best answer is what
Andreas suggested.

cheers, Pete

ben sagal wrote:
> I would ideally like to use a prepared statement, in which i can on each
> execution insert a different array? the method u suggest will not allow
> use of a prepared statement.
>
> thanks Ben
>
>
> On 6/5/07, *Andreas Joseph Krogh* <andreak(at)officenet(dot)no
> <mailto:andreak(at)officenet(dot)no>> wrote:
>
> On Tuesday 05 June 2007 16:23:29 ben sagal wrote:
> > is there any way to do that with a variable amount of elements in
> the
> > array?
>
> I'm not quite sure what you mean?
> Say you have the following:
>
> int[] num = new int[]{1,2,3};
> StringBuffer sb = new StringBuffer();
> sb.append("SELECT * FROM items WHERE id IN(").append(generateCSV("?",
> num.length)).append(")");
> for (int i = 0; i < num.length; i++) {
> ps.setInt(i, num[i]);
> }
> ps.executeQuery();
>
> The generateCSV-method must return a comma-separated String, in this
> case the
> String "?,?,?", because num-array has length==3.
>
> then num-array can be of any lenth you want.
>
> --
> Andreas Joseph Krogh <andreak(at)officenet(dot)no
> <mailto:andreak(at)officenet(dot)no>>
> Senior Software Developer / Manager
> ------------------------+---------------------------------------------+
> OfficeNet AS | The most difficult thing in the world is to |
> Karenslyst Allé 11 | know how to do a thing and to watch |
> PO. Box 529 Skøyen | somebody else doing it wrong, without |
> 0214 Oslo | comment. |
> NORWAY | |
> Tlf: +47 24 15 38 90 | |
> Fax: +47 24 15 38 91 | |
> Mobile: +47 909 56 963 | |
> ------------------------+---------------------------------------------+
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo(at)postgresql(dot)org
> <mailto:majordomo(at)postgresql(dot)org> so that your
> message can get through to the mailing list cleanly
>
>

--
Pete Lewin-Harris
Senior Software Engineer
Tel: 020 7788 4388
Email: pete(at)kinomi(dot)com

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Andreas Joseph Krogh 2007-06-05 14:58:49 Re: Array paramiters
Previous Message ben sagal 2007-06-05 14:46:48 Re: Array paramiters