Problema:ResultSet.next was not called

8 respostas
F

Pessoal, ao rodar minha aplicacao ocorreu o seguinte erro:

o codigo é o seguinte:

<blockquote>				while (!rs.isAfterLast() && coluna <= qtdMeses

&& rs.getString(RAZAOSOCIAL) == csa_atual) {

if (mesAtual != 12)

mesAtual = dataIni.getMonth() + coluna;

else if (coluna == 0)

mesAtual = 12;

else

mesAtual = 1;

if (rs.getDate(DTFECHAMENTO).getMonth() != mesAtual) {

Matriz[linha][coluna * 2 + 1] = new Double(0);

Matriz[linha][coluna * 2 + 2] = new Double(0);

} else {

Matriz[linha][coluna * 2 + 1] = new Double(rs

.getString(QTDOS));

Matriz[linha][coluna * 2 + 2] = new Double(rs

.getString(VALOROS));

rs.next();

}</blockquote>

será que é porque eu nao estou recebendo o boolean que o metodo next retorna?!

Obrigado,
Fernando

8 Respostas

_fs
while (!rs.isAfterLast() && coluna <= qtdMeses
&& rs.getString("RAZAOSOCIAL") == csa_atual) {

É necessário fazer um rs.next() antes de rs.getString( “RAZAOSOCIAL” ).

F

Obrigado!
vou testar…
mas vc pode me falar pq isso?

Seria pq eu presumi que o cursor do resultset estaria no primeiro registro,
mas na verdade ele nao comeca no comeco :?: :?:

nao poderia resolver dando um rs.first() antes?

Grato,
Fernando Almeida

renatosilva

Acho que o cursor fica antes do primeiro registro…

F

realmente…
acho q o cursor fica antes do primeiro…

  • agora minha duvida é:
    pq .next()
    e nao .first()?!
_fs

Se não me engano alguns drivers não implementam .first().

F

mais uma duvida pessoal!

meu cursor esta no ultimo registro do meu result set
e eu dou um rs.next()

oq acontece?
a-) ele retorna false e leva o cursor pra o proximo registro (fazendo com que a funcao isAfterLast() retorne true)
b-) ele retorna true e leva o cursor pra o proximo registro (fazendo com que a funcao isAfterLast() retorne true)
c-) ele retorna false e nao anda com o cursor
d-) ele retorna true e nao anda com o cursor
e-) n.d.a

Espero resposta,
Obrigado!!

1112

Ele retorna false. Imagino eu que o método isAfterLast() seja true após esta chamada.

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

T

Nunca ouvi falar de “isAfterLast”. O método padrão de se andar em um recordset é algo como

while (rs.next()) {
}
Criado 5 de abril de 2006
Ultima resposta 5 de abr. de 2006
Respostas 8
Participantes 5