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
>