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

Поиск
Список
Период
Сортировка
От Jojo Paderes
Тема Re: passing array as parameters to PrepareStatement or callable statement.[setObject() or setArray()]
Дата
Msg-id 65f9ddfb0511200803q6df02e33l52589649da2be071@mail.gmail.com
обсуждение исходный текст
Ответ на Re: passing array as parameters to PrepareStatement or callable statement.[setObject() or setArray()]  (Dave Cramer <pg@fastcrypt.com>)
Ответы Re: passing array as parameters to PrepareStatement or callable  (Oliver Jowett <oliver@opencloud.com>)
Список 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@fastcrypt.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@ejurka.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@postgresql.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

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Jojo Paderes
Дата:
Сообщение: Re: implementing setObject(n, java array[])
Следующее
От: Dave Cramer
Дата:
Сообщение: Re: implementing setObject(n, java array[])