Dados não encontrados

4 respostas
D
pessoal, por exemplo qndo a tabela esta vazia e eu tenho o codigo
public int getIdade(String data){

 db.rst = db.stmtExecuteQuery("Select idade where data='"+data+"';")

 while(db.rst.next()){
  idade = Integer.parseInt(db.rst.getString(1));
 }

 return idade;
}
o q ta acontecendo comigo é q como não tem nada no banco ele não entra no while - lógico :lol: como faço pra indicar q o select não retornou nenhum resultado?

4 Respostas

F

Kd o “from” da query?

[]'s
Fábio

F

vc pode iniciar a sua variavel idade com um valor negativo, por exemplo.
se retornar negativo, é porque não foi retornado nada na consulta.

D

Buenas… sem o FROM percebido pelo FabioRC realmente nunca vai retornar linhas, inclusive te aconselho usar um TRY … CATCH nestas operações com BD.

Mas para verificar se retornou linhas ou não tu pode fazer uma destas coisas:

  1. if (rst.next()) {
                  idade = Integer.parseInt(rst.getString(1));
    
                  while (rst.next())
                     idade = Integer.parseInt(rst.getString(1)) ;
          } else {
                 // tratamento com mensagem, retorno, algo do tipo
          }
    

ou usar um rst. first para voltar e não fazer a primeira leitura fora do loop

  1. inicializar a variavel idade e após o while, verificar se idade é igual ao valor da inicialização. Se for igual não iterou nenhuma vez no while.

[]s

D

valew pessoal, gostei da ideia do if(rst.next), eu to usando try, catch, e o from tb eh que na hora da correria eu esqueci de escrever isso eheheh
vou tentar isso e mais tarde retorno pra dizer se deu certo ou errado valew novamente

Criado 2 de março de 2005
Ultima resposta 3 de mar. de 2005
Respostas 4
Participantes 4