Ajuda com consulta no sql server

4 respostas
F
Estou tentando retornar o ultimo codigo cadastrado na tabela funcionario. So que não esta dando certo. Usei um metodo que faz a busca para eu setar no formulario mas esta dando erro, se alguem puder me ajudar

o Codigo do metodo.

public void retornaCodigoFunc(){

PFuncionario funcionario = new PFuncionario();

BancoDados conexao = new BancoDados();

ResultSet rsFuncionario = conexao.Consultar(funcionario.retornarCodigo());

try{

if(rsFuncionario.next()){                  //aqui ele entra no if, ai ele vai atribuir na variavel CodigoFunc e vai o catch…

CodigoFunc = rsFuncionario.getInt(CODFUNCIONARIO);

jtxtCodigo.setText(String.valueOf(CodigoFunc));

}

} catch(SQLException ex){

JOptionPane.showMessageDialog(null," Erro ao buscar codigo funcionario…",ATENÇÃO!,JOptionPane.PLAIN_MESSAGE);

}

}
chamo esse metodo logo abaixo de salvar o registro no banco detro do try

//salvando o registro

PFuncionario func = new PFuncionario();

func.receberParametroFuncionario(,cep,fone,email,cpf,identidade,dataNascimento,opcaoFuncional);

func.incluir(cad);

retornaCodigoFunc();  //chamo o metodo buscar o ultimo codigo que acabou de ser cadastrado

}
catch(Exception ex){
          JOptionPane.showMessageDialog(null,"Erro ao tentar efetuar o cadastro...","Funcionário",JOptionPane.PLAIN_MESSAGE);
      }

4 Respostas

luiscesarinfo

use a clausula MAX do SQL :

select MAX(campoCodigo) from tabelaFuncionarios

e grave o resultado em algum atributo da classe.

qquer coisa, faz outro post.

[]’ Luis Cesar

F

[quote=luiscesarinfo]use a clausula MAX do SQL :

select MAX(campoCodigo) from tabelaFuncionarios

e grave o resultado em algum atributo da classe.

qquer coisa, faz outro post.

Luis Cesar quando eu chamei o metodo retornaCodigo ele tem essa linha de codigo.

public String retornaCodigo(){    //esse é o metodo ele ja existe

String Codigo = SELECT MAX(CODFUNCIONARIO) FROM FUNCIONARIO);

returne Codigo;

}

ResultSet rsFuncionario = conexao.Consultar(funcionario.retornarCodigo());  //qdo eu chamo ele aqui vai tudo beleza, mas

try{

if(rsFuncionario.next()){ //aqui ele entra no if, ai ele vai atribuir na variavel CodigoFunc e vai o catch

CodigoFunc = rsFuncionario.getInt(CODFUNCIONARIO); //chega nessa linha pula pro catch

jtxtCodigo.setText(String.valueOf(CodigoFunc));

}

alguma coisa ta errada e não consigo descubrir. desculpe por dar trabalho to começando agora e ainda sou cru em java…
mas muito obrigado por tentar me ajudar…

esse é o metodo, da erro quando cai na condicao if(rs

luiscesarinfo

Qual é o tipo do atributo CodigoFunc que recebe o resultado da consulta ( rsFuncionario.getInt(“CODFUNCIONARIO”); ) ?

outra coisa esse (“CODFUNCIONARIO”) é o seu campo do banco de dados ?

se for faça assim :

String Codigo = "SELECT MAX(CODFUNCIONARIO) AS ultimoCodigo FROM FUNCIONARIO"); 
.
.
.
CodigoFunc = rsFuncionario.getInt(ultimoCodigo); //CodigoFunc tem que ser do tipo int

tenta isso ai… acho q assim deve funcionar.

[]'s Luis Cesar

F

:smiley: :smiley: :smiley: Agora deu certo, exatamente o que eu queria, muito obrigado.

luiscesarinfo:
Qual é o tipo do atributo CodigoFunc que recebe o resultado da consulta ( rsFuncionario.getInt(“CODFUNCIONARIO”); ) ?

outra coisa esse (“CODFUNCIONARIO”) é o seu campo do banco de dados ?

se for faça assim :

String Codigo = "SELECT MAX(CODFUNCIONARIO) AS ultimoCodigo FROM FUNCIONARIO"); 
.
.
.
CodigoFunc = rsFuncionario.getInt(ultimoCodigo); //CodigoFunc tem que ser do tipo int

tenta isso ai… acho q assim deve funcionar.

[]'s Luis Cesar

Criado 1 de dezembro de 2007
Ultima resposta 2 de dez. de 2007
Respostas 4
Participantes 2