Problemas com resultset

7 respostas
Diana

Eu sei que ele tá pesquisando pq quando o registro não está na tabela ele mostra…mas naum esta conseguindo trazer os valores…

Alguém pode dar uma olhadinha?

public Funcionario consultaFuncionario(Funcionario achar){ 
         int cod=0; 
         String nome=""; 
         String funcao=""; 
         String setor=""; 
         double sal=1.0; 
      try{ 
         stmt=conect.getStatement(); 
         ResultSet rs= 
         stmt.executeQuery("select * from CAD_Funcionario where ID_Matricula = " + achar.getMatricula() ); 
         if (!rs.next()){ 
            JOptionPane.showMessageDialog(null,"Registro não Encontrado!"); 
         }else{ 
         while(rs.next()){ 
         cod=rs.getInt("ID_Matricula"); 
         nome=rs.getString("NM_Funcionario"); 
         setor=rs.getString("NM_Setor"); 
         funcao=rs.getString("NM_Funcao"); 
         sal=rs.getDouble("VL_Salario"); 
         } 
         }       
      }catch(SQLException ex){ 
       System.out.println("Erro consulta: "+ex); 
      } 
      System.out.println("consula feita"); 
      Funcionario f=new Funcionario(cod,nome,setor,funcao,sal); 
      return f; 
      }

7 Respostas

hmichel

Um problema que encontrei, talvez não seje, porém… Vc está dando dois next, e como, muito provavelmente ele soh retorna um funcionaário, ele está ondo pro end of file (EOF).

Flw

P

Eu também acho que você está dando um next a mais, e tem mais você não precisa dar aquele JOptionPane se o result não tiver nada, o try-catch se encarregará disso, no bloco catch você poderia por aquele JOptionPane

marcioa1

Acho que o Michel está certo. Tente retirar a instrução while que está na cláusula else.

jgbt

Vc deve dar um rs.beforeFirst() depois do primeiro next para o “ponteiro” retornar p/ o inicio do ResultSet.

[]'s

marcioa1

João,

Não conhecia este método beforeFirst().

Este método funciona com qualquer tipo de resultSet ? Não existe resultSet que só anda para frente ?

Abraço,

Márcio

jgbt

“marcioa1”:
João,

Não conhecia este método beforeFirst().

Este método funciona com qualquer tipo de resultSet ? Não existe resultSet que só anda para frente ?

Abraço,

Márcio


Não tenho certeza, acho que depende do driver.Mas se não funcionar com o ResultSet normal, vc pode quando criar o Statement vc pode passar um parametro dizendo que o rs vai ser navegavel.
De uma olhada na documentação:
http://java.sun.com/j2se/1.4.2/docs/api/

[]'s

_fs

Depende do tipo de SelectMethod que você escolhe.

No caso do driver do mssqlserver funciona assim:
http://edocs.bea.com/wls/docs81/jdbc_drivers/mssqlserver.html

Criado 25 de maio de 2004
Ultima resposta 25 de mai. de 2004
Respostas 7
Participantes 6