Uma conexao com 2 ResultSet's

2 respostas
brunohenrique

galera tenho o seguinte código para popular uma tabela.

private boolean encheTabela(){
        boolean reg = false;
        JConexao con = new JConexao();
        con.conect();
        try{
            ResultSet rs = con.getStatment().executeQuery("select * from " +
                    "tempaidf order by id;");
            
            ResultSet rsCont = con.getStatment().executeQuery("select COUNT(*) AS contador from " +
                    "tempaidf;");
            
            rsCont.first();
            rs.first();
            if (rsCont.getInt("contador") >= 1){
                do{
                    DefaultTableModel tabela = (DefaultTableModel) jTblNewReg.getModel();
                    tabela.addRow(new String [] {rs.getString("ie"),rs.getString("data")});
                    rs.next();
                }while(!rs.isAfterLast());
                reg = true;
            }
            rs.close();
            rsCont.close();
            con.disconect();            
        }catch (SQLException ex){
            JOptionPane.showMessageDialog(null, ex.getMessage());
            ex.printStackTrace();
        }        
        return reg;        
    }

tenho uma conexao (“con”) e dois results, um para a “consulta” em si e outro para trazer a “quantidade”.
mas o galho está na mensagem de erro informando que o ResultSet da consulta está fechado!

será que é porque os dois results estão na mesma conexao???

2 Respostas

tchandy

tive um problema muito parecido com o seu para popular uma tabela, tente utilizar um PreparedStatement ao Invés de um Statement normal.

Segue um exemplo:

Conexao conn = new Conexao();
PreparedStatement pstmt = conn.connection.prepareStatement("select nome_cliente from tbcliente");
ResultSet rst2 = pstmt.executeQuery();

Provavelmente irá funcionar =)

abraço

tchandy

tive um problema muito parecido com o seu para popular uma tabela, tente utilizar um PreparedStatement ao Invés de um Statement normal.

Segue um exemplo:

Conexao conn = new Conexao();
PreparedStatement pstmt = conn.connection.prepareStatement("select nome_cliente from tbcliente");
ResultSet rst2 = pstmt.executeQuery();

Provavelmente irá funcionar =)

abraço

Criado 28 de setembro de 2007
Ultima resposta 28 de set. de 2007
Respostas 2
Participantes 2