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

Поиск
Список
Период
Сортировка
От Dave Cramer
Тема Re: passing array as parameters to PrepareStatement or callable statement.[setObject() or setArray()]
Дата
Msg-id A427CF93-7A30-483A-B98C-FD19B60733F4@fastcrypt.com
обсуждение исходный текст
Ответ на Re: passing array as parameters to PrepareStatement or callable statement.[setObject() or setArray()]  (Assad Jarrahian <jarraa@gmail.com>)
Ответы Re: passing array as parameters to PrepareStatement or callable statement.[setObject() or setArray()]  (Jojo Paderes <jojo.paderes@gmail.com>)
Список pgsql-jdbc
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
>


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

Предыдущее
От: Assad Jarrahian
Дата:
Сообщение: Re: passing array as parameters to PrepareStatement or callable statement.[setObject() or setArray()]
Следующее
От: Assad Jarrahian
Дата:
Сообщение: ErrorCodes suddenly stopped working? [possibly my programming error]