Problema no ResultSet

5 respostas
mmenezes

fala galera to com o seguinte erro :

rs = stmt.executeQuery(oracleQuery);
            
            while (rs.next()){
                
                //categorias
                catbanco = Integer.parseInt(rs.getString("glca_cod_ctg"));
                codCat = rs.getString("glca_cod_ctg");
               
                descCat = rs.getString("glca_nom_ctg");
                        
                if (cat != catbanco){

quando pego o primeriro valor
catbanco = Integer.parseInt(rs.getString(“glca_cod_ctg”));
ele ja ta me interando para o proximo registro

e no segudo valor
codCat = rs.getString(“glca_cod_ctg”);
a mesma coisa e assim por diante…

ele ja ta me dando um rs.next quando entra no while ja tentei usa o do while mas a cada rs.getString ele me anda um registro.

alguem sabe o q pode ser isso?!

obrigado

5 Respostas

rodolfogs8

tenta assim

while (rs.next()==true){ codigo }

G

Bom dia!
O “rs.next()” ja te retorno um valor boolean, então não precisa “rs.next() == true”.
Dê uma olhada melhor cara pq isso normalmente não ocorre.
O resultSet so passa pra proxima linha depois do next().
Inicialmente ele está posicionado na linha -1 (em nenhuma linha),
pra usar o doWhile(), primeiro vc terá que colocar na primeira linha com
first().

mmenezes

po ta dando erro ainda, ele vai dando next cada vez que mexo nele
+(

Marck

Olá.

Tenta assim:

rs = stmt.executeQuery(oracleQuery);  
do {
                catbanco = Integer.parseInt(rs.getString("glca_cod_ctg"));
                codCat = rs.getString("glca_cod_ctg");
                descCat = rs.getString("glca_nom_ctg");
}while(rs.next());

Com o do, primeiro será executado os parse’s depois ele verifica se a condição no while é verdadeira.

Marck

MrDataFlex
rs.first();
do {
..

} while (rs.next());
Criado 7 de agosto de 2007
Ultima resposta 7 de ago. de 2007
Respostas 5
Participantes 5