SoloCodigo

Programación General => Java => Mensaje iniciado por: laura_mg en Lunes 19 de Noviembre de 2007, 11:30

Título: Error Con Resultset
Publicado por: laura_mg en Lunes 19 de Noviembre de 2007, 11:30
Hola, mi problema es el siguiente:

Estoy haciendo una aplicación que accede a una base de datos MySQL, pero cuando ejecuto un trozo de código me da el error   Operation not allowed after ResultSet closed


El código donde me da este error es el siguiente:

rs = stm.executeQuery("SELECT * FROM gastos2 WHERE idPresu="+idPresupuesto+";");

            while(rs.next()){
                int idGastos = rs.getInt("id");
                int partidaId = rs.getInt("partida");
                double costeUnitario = rs.getDouble("costeUnitario");
                int unidades = rs.getInt("unidades");
                int hito = rs.getInt("hito");
               
                rs2 = stm.executeQuery("SELECT descripcion FROM partidas WHERE id="+partidaId+";");

                while(rs2.next()){
                    for(int i=0; i<mmt.getRowCount(); i++){
                        if(mmt.getValueAt(i,0).toString().trim().equals(rs2.getString("descripcion").trim())){
                            mmt.setValueAt((float)(costeUnitario*unidades),i,hito);
                        }
                    }
                }
                rs2.close();
               
            }//while(rs.next());
           
            rs.close();

Si alguien sabe porqué me está pasando, le agradecería su ayuda.

Muchas gracias y un saludo.
Título: Re: Error Con Resultset
Publicado por: fernandobarron86 en Lunes 19 de Noviembre de 2007, 14:34
Citar
rs = stm.executeQuery("SELECT * FROM gastos2 WHERE idPresu="+idPresupuesto+";");

Intenta quitarle el punto y coma que está después de "idPresupuesto"  al final del query  :)
Título: Re: Error Con Resultset
Publicado por: laura_mg en Lunes 19 de Noviembre de 2007, 16:01
No, ese no es el error.
Según la base de datos que utilizo, necesito ponerle ; al final de cada sentencia.
Título: Re: Error Con Resultset
Publicado por: fernandobarron86 en Lunes 19 de Noviembre de 2007, 16:26
Intenta quitar estas líneas:

Citar
rs2.close();
Citar
rs.close();
Título: Re: Error Con Resultset
Publicado por: manix en Martes 20 de Noviembre de 2007, 05:33
revisa el orden de las acciones... y sobre todo cuando cierras los resulset porque despues de esas sentencias estas tratando de hacer algo mas <_<
Título: Re: Error Con Resultset
Publicado por: xarlot en Martes 16 de Noviembre de 2010, 04:28
Tiene que ver con el orden al parecer... a mi me sucedió lo mismo... revisa los ResultSet...
Por ejemplo:

conexion con = new conexion("localhost", "agendaestudiante", "root", "");
            Statement s1,s2,s3;
             
            s1 = con.conexion.createStatement();
            ResultSet R =null;          
            R = s1.executeQuery("Select * from Ramo");

               while (R.next()) {
                Cbx_Ramo.addItem(R.getObject("Ramo_Nombre"));
            }

            s2 = con.conexion.createStatement();
            ResultSet R2 =null;
             R2 = s2.executeQuery("Select * from profesor");
            while(R2.next()){
            Cbx_Profesor.addItem(R2.getObject("Prof_Nombre"));
                String profesor=R2.absolute(Cbx_Profesor.getSelectedIndex()+1);
               
            }
           
              s3 = con.conexion.createStatement();
              ResultSet R3 =null;
              R3 = s3.executeQuery("Select * from Sala");
             while(R3.next()){
             Cbx_Sala.addItem(R3.getObject("Sala_Nombre"));
             }