Multiples ResultSets

jmcontreras
20 de Enero del 2004
Hola a tod@s :

Tengo un problema con un stored Procedure, el cual devuleve 3 resulsets (hace 3 select's internamente), sin embargo al tratar de recuperarlo con java, la clase únicamente logra recuperar el primero de ellos.

Este es un segmento del codigo que usamos para recuperar dinamicamente esos Resultset's :
(NOTA: EL CODIGO NO ESTÁ AL 100% PERO DEJÉ LO QUE CONSIDERE MEJOR PARA AYUDARLES A DARSE UNA IDEA DE LO QUE HACEMOS )

do{
resultSet = statement.getResultSet();
int numeroColumnas = metadata.getColumnCount();
for(int j=1;j<numeroColumnas+1;j++){
System.out.print(metadata.getColumnName(j));
}
while(resultSet.next()){
for(int j=1;j<numeroColumnas+1;j++){
System.out.print(resultSet.getString(j));
}
}
} while(statement.getMoreResults());

la DB se encuentra en Sybase 12.5 y controlador de java que estamos usando es com.sybase.jdbc2.jdbc.SybDriver ...

sin embargo, si los 3 select's que ejecuta el SP los ejecutamos "desde afuera", java recupera correctamente los 3 Resultset ...

Alguna Idea ??
Muchas gracias a tod@s ...

Anonimo
20 de Enero del 2004
Tuve un problema parecido y lo solucione de esta manera, prueba a ver si te sirven.
1. Revisa si los resultset están declarados static en la clase con la que te conectas a la BD.
2. Revisa si estas manejando un pool de conexiones y te desconectas de esta cada vez que hace las consultas, lo cual hace que pierdas todos los datos y nada más queden los del primer resultset.