Re: passing array as parameters to PrepareStatement or callable statement.[setObject() or setArray()]

From: Jojo Paderes <jojo(dot)paderes(at)gmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: passing array as parameters to PrepareStatement or callable statement.[setObject() or setArray()]
Date: 2005-11-20 16:03:39
Message-ID: 65f9ddfb0511200803q6df02e33l52589649da2be071@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Is the Array class used in the method refers to java.sql.Array? If
yes, I think it's not possible to use that to create an object since
it is an interface.

On 11/14/05, Dave Cramer <pg(at)fastcrypt(dot)com> wrote:
> This is from a previous post.
>
> Dave
> public static Array convertIntegerToPgSqlArray(final int[] p) {
> if(p == null || p.length < 1) return null;
> Array a = new Array() {
> public String getBaseTypeName() {return "int4";}
> public int getBaseType() {return 0;}
> public Object getArray() {return null;}
> public Object getArray(Map<String, Class<?>> map) {return null;}
> public Object getArray(long index, int count) {return null;}
> public Object getArray(long index, int count, Map<String,
> Class<?>> map) {return null;}
> public ResultSet getResultSet() {return null;}
> public ResultSet getResultSet(Map<String, Class<?>> map)
> {return null;}
> public ResultSet getResultSet(long index, int count) {return
> null;}
> public ResultSet getResultSet(long index, int count,
> Map<String, Class<?>> map) {return null;}
>
> public String toString() {
> String fp = "{";
> if(p.length == 0) {
> } else {
> for(int i = 0; i < p.length - 1; i++) fp += p[i] + ",";
> fp += p[p.length - 1];
> }
> fp+="}";
> return fp;
> }
> };
>
> On 13-Nov-05, at 6:56 PM, Assad Jarrahian wrote:
>
> > Hi Kris and all,
> > So I did a quick google search and found out all I need in my new
> > class that implements Array is getBaseType() and toString() [I am not
> > sure this is true since it is not working! Either that or I am doing
> > something wrong]
> >
> > Code below
> >
> > public class IDArray implements Array{
> > protected int[] myArray;
> >
> > public IDArray(int[] temp ){
> > ....
> > }
> > public int getBaseType() throws SQLException {
> > return Types.INTEGER;
> > }
> > public String toString(){
> > String temp = new String();
> > temp+="{";
> > for (int i=0;i<arraySize; ++i){
> > temp += myArray[i];
> > if (i!=arraySize-1)
> > temp +=",";
> > }
> > temp+="}";
> > return temp;
> > }
> > }
> >
> >
> > When I call it in my java code using
> > IDArray LM_IDs = new IDArray(new int[]{3,4,5});
> > getAssociatedLMs.setObject(1, LM_IDs, java.sql.Types.ARRAY);
> >
> > I get an exception thrown (I cant figure this one out).
> > -1 Unknown type _null. [errorCode message]
> >
> > Any pointers help, would be much appreciated. Thanks.
> >
> > -assad
> >
> >
> > On 11/13/05, Kris Jurka <books(at)ejurka(dot)com> wrote:
> >>
> >>
> >> On Sat, 12 Nov 2005, Assad Jarrahian wrote:
> >>
> >>> Hello all,
> >>> my apologies if this question has been asked before. I looked
> >>> through the archives could not find the relevant info (if I
> >>> overlooked
> >>> something, sorry).
> >>>
> >>> int[] intarray = new int[1];
> >>> getAssociatedLMs.setObject(1, intarray, java.sql.Types.ARRAY);
> >>> //getAssociatedLM's is a callable statement ("{call getLMs(?,?) }
> >>> ");
> >>>
> >>> so I get a compilation error saying
> >>> org.postgresql.util.PSQLException: Cannot cast an instance of [I to
> >>> type Types.ARRAY
> >>
> >> Currently the driver only supports passing a specific
> >> implementation of
> >> java.sql.Array to setObject (and setArray). Other people have posted
> >> helper classes to transform some specific java array types to
> >> java.sql.Array, but these have not been generalized and added to the
> >> driver.
> >>
> >> Kris Jurka
> >>
> >
> > ---------------------------(end of
> > broadcast)---------------------------
> > TIP 6: explain analyze is your friend
> >
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
> message can get through to the mailing list cleanly
>

--
You can make a difference!
http://gawadkalinga.org
http://www.childrenshour.org.ph
http://www.handsonmla.org

http://groups.yahoo.com/group/pinoyjug
http://jojopaderes.blogsome.com
http://jojopaderes.multiply.com

"In preparing for battle I have always found that plans are useless,
but planning is indispensable." - Eisenhower

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dave Cramer 2005-11-20 16:10:45 Re: implementing setObject(n, java array[])
Previous Message Jojo Paderes 2005-11-20 16:01:21 Re: implementing setObject(n, java array[])