Problemas em mostrar ultimo registro

7 respostas
Diana

Pessoal…eu gostaria de que apos salvar o registro, fosse mostrado na tela qual o numero da chave que ele obteve…por ex., prrenchi os campos(menos) o codigo e cliquei no salvar, apos isso ele permanece com os campos preenchidos e no lugar do codigo que estava em branco ele mostra um numero…que eh o numero do registro…pois muito bem…fiz uma rotina para ele mostrar o numero, mas acontece que ele cria outro registro…duplica…uma pessoa com dois numeros diferentes, por exemplo…joao com 51 e 52…
Por Favor…alguem da uma olhadinha no meu codigo e diz o que tem de errrado…obrigada[]'s

codigo para inserir:

Código:

public void inserir(String nome, String tel, String cel, String mail){

Statement stmt = HF.createStatement();

try {

stmt.executeUpdate(

“INSERT INTO contato_agenda(nome,telefone,celular,email)VALUES (’” +

nome.toUpperCase() + “’,’” + tel +

“’,’” +cel+ “’,’” + mail +

“’)”);

}

catch (SQLException ex) {

JOptionPane.showMessageDialog(null,"Erro:

"+ex);

}

JOptionPane.showMessageDialog(null,Registro salvo);

}

codigo para mostrar o ultimo:

Código:

public String mostrarUltimo(){

String codi="";

Statement stmt=HF.createStatement();

try{

ResultSet rs =

stmt.executeQuery(“select last_value from contato_agenda_codigo_seq”);

while(rs.next()){

int cod=rs.getInt(“last_value”);

codi=codi+cod;

}

}catch(SQLException ex){

JOptionPane.showMessageDialog(null,"Erro em: "+ex);

}

return codi;

}

acao do botao:

Código:

void jButton2_actionPerformed(ActionEvent e) {

gb.inserir(jTextField2.getText().toUpperCase(),

jFormattedTextField1.getText(), jFormattedTextField2.getText(),

jTextField3.getText());

jTextField1.setText(gb.mostrarUltimo());

}

Onde gb = gerenteBD…

7 Respostas

dsiviotti

Se contato_agenda_codigo_seq for uma sequence é normal que crie um novo registro.
O seu Insert só funciona se o seu campo código for um autoincremento real, ou seja existe uma trigger para pegar o próximo valor da sequence.
O problema não deve ser no código e sim na forma como você insere no banco.

Diana

o meu campo codigo eh autoincrement…

aborges

Dah uma olhada nisso aqui:

http://www.techonthenet.com/oracle/sequences.htm

E

Boa tarde.

Sua tabela não estaria com o código para o contato da agenda como Primary Key, se for isso, não tem como evitar a duplicação da forma que está codificado.
Caso esteja certo, vc terá que realizar alguma pesquisa antes de realizar a inclusão por campos “chaves” ou alterar a forma com o qual a tabela do banco de dados foi criada.

Att.
Ederson.

aborges

Faz o insert assim?

INSERT INTO suaTabela
(codigo, blablabla)
VALUES
(suaSequence.nextval, 'blablabla');

Dessa forma, sua sequence jah foi incrementada e seu codigo recebe o ultimo valor da mesma …

Diana

mesmo com a alteracao…
insert into table (codigo, nome) values(nextval(‘table_seq’),“michela”)

ela ainda continua duplicando…

E

Bom dia Diana.

Vc chegou a ver como a tabela está “contruída”?
Quais são as primaries keys?

Att.
Ederson.

Criado 6 de abril de 2004
Ultima resposta 8 de abr. de 2004
Respostas 7
Participantes 4