[resolvido] erro no resultset

Estou com um problema que eu realmete não sei pq
esta dando esse erro aparentimento esta tudo certo. mas da o seguinte erro:

RESULT = org.firebirdsql.jdbc.FBResultSet@e64686
14/07/2009 19:32:14 balizamento.Balizamento gerarBalizamento
SEVERE: null
org.firebirdsql.jdbc.FBSQLException: The result set is closed
        at org.firebirdsql.jdbc.FBResultSet.checkCursorMove(FBResultSet.java:217)
        at org.firebirdsql.jdbc.FBResultSet.next(FBResultSet.java:249)
        at balizamento.Balizamento.gerarBalizamento(Balizamento.java:39)

Se alguem souber o pq dessse erro eu adradeço

O Codigo é este o erro da no While


try
        {
            st = con.criarStatement();
            ResultSet rsProva = con.consultar("SELECT * FROM PROVA ORDER BY PRO_NUMERO");
            System.out.println("RESULT = "+rsProva);
            while (rsProva.next())
            {
               //...
            }
        } catch (SQLException ex) {
            Logger.getLogger(frmMain.class.getName()).log(Level.SEVERE, null, ex);
        }

Brother, não tem outro resultset aberto nessa mesma connection? Ou no mesmo Statement?

Tem otro aberto sim!

então isso quer dizer que eu não posso abrir mais de um ResultSet?
Pq eu precisaria ficar com tres aberto não teria como?

Brother, tu até pode ter. Se nao me engano tem uma limitação de 1 resultset por statement. Logo tu teria que criar 3 statements. Não achei o lugar da documentação, teria que dar uma olhada pra saber o número exato.

Também não é possível. Assim… uma conexão só pode ter 1 Statement. E um Statement só pode ter um ResultSet. Logo, é um ResultSet por conexão. E seria muita gambiarra, então, ter 3 conexões com o banco.

O ideal é ler um ResultSet, armazenar os dados de que se precisa, fechá-lo, e então executar o próximo; e assim sucessivamente.

Também não é possível. Assim… uma conexão só pode ter 1 Statement. E um Statement só pode ter um ResultSet. Logo, é um ResultSet por conexão. E seria muita gambiarra, então, ter 3 conexões com o banco.

O ideal é ler um ResultSet, armazenar os dados de que se precisa, fechá-lo, e então executar o próximo; e assim sucessivamente.[/quote]

Cara, aonde tu encontrastes isso na documentação? Perdi essa referência e quero dar uma lida. Valeu.

Bom, na verdade eu falei baseado em algo que eu lembrava.

Realmente, sobre a conexão suportar apenas 1 Statement eu não encontrei na documentação, talvez eu esteja errado. oO

Sobre o ResultSet, está descrito na introdução da classe Statement:

http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html

[quote=Yky Mattshawn]Bom, na verdade eu falei baseado em algo que eu lembrava.

Realmente, sobre a conexão suportar apenas 1 Statement eu não encontrei na documentação, talvez eu esteja errado. oO

Sobre o ResultSet, está descrito na introdução da classe Statement:

http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html[/quote]

Pois é, do Statement me lembrava de algo do tipo, agora da connection eu não sabia mesmo que era uma por statement. Uma vez li em algum lugar que parece que era dois por connection. Mas não achei na documentação também.

Quem souber, por favor, poste ai para ficar registrado…

Abraço,
Giuliano Costa

Bom Brigadão ai galera eu realmente não sabia que so poderia ter uma conexão
eu estava quebrando a cabeça pra descobrir oque era aquele erro

bom agora eu vo faze diferente vo se armazeno em uma array os valores que eu preciso

Valeu, mais uma que eu aprendi!!!

Vinny,

Uma sugestão, altera o título do tópico para “RESOLVIDO”, assim as futuras pessoas que passarem por esse problema acharam mais fácilmente.

Abraço