La Web del Programador: Comunidad de Programadores
 
    Pregunta:  6845 - PROBLEMA CON VARIOS RESULTSET
Autor:  Liencres
Tenemos un problema:
Realizamos varias consultas en sql (4 sentencias SELECT)sobre unas tablas y los resultados los asignamos a 4 ResultSet distintos.
Esto esta hecho en una pagina .jsp bajo Windows2000 en ODBC, al lanzar la pagina nos da un error que dice: "ResultSet is closed"

Otro error que nos da cuando no cerramos los Statements de cada consulta es: "java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]La conexión está ocupada con los resultados de otro hstmt".

La pregunta es:
¿Cómo se solventa el problema?

  Respuesta:  tycoon
Lo de "ResultSet is closed", ¿puede ser porque le asignes los datos antes de llamar al metodo next()?

Con lo de "La conexión está ocupada con los resultados de otro hstmt", a mi me pasaba lo mismo, instanciando clases con los datos de una consulta, al cargar una lista de objetos en otro que los contenía, tenía que abrir 2 resultset a la vez, y esto no lo permite SQL. Tienes que vaciar un resultset antes de abrir otro, después cerrarlo, y luego cerrar el statement, para que funcione siempre. Al menos en SQL server, no he podido solucionarlo de otra forma

Saludos

  Respuesta:  Marc RS
Teníamos el mismo problema utilizando una única conexión. Ejecutánbamos 1 stored procedure que devolvía un ResultSet y después realizábamos otra consulta con un preparedStatement en la misma conexión. Llámanos tristes pero generamos 2 conexiónes independientes una para cada consulta.

Esto mismo, realizado con un DRIVER en lugar de un puente sun.jdbc.odbc no nos dió nunca problemas.