Key Violation

Delphi

08/08/2003

Como evitar a mensagem de erro Key Violation usando Query?
Obrigado pela atenção!


Douglas

Douglas

Curtidas 0

Respostas

Andre0201

Andre0201

08/08/2003

A mensagem Key Violation ocorre quando há uma violação da chave primaria, portanto via programação vc deve evitar que isto ocorra.


GOSTEI 0
Seek

Seek

08/08/2003

Olá,

O melhor a fazer é o seguinte: Quando for digitado o Codigo ou os campos da Chave Principal, você faz uma consulta na tabela verificando se este registro já existe, caso já exista, mande uma mensagem para o usuário informando a existência deste registro evitando assim o Key Violation, é trabalhoso, porém funciona. Caso nâo exista, então grave o registro.

ou dentro da query faça: Insert ignore into tabela ....


GOSTEI 0
Clenio

Clenio

08/08/2003

Crie uma procedure assim:

procedure TForm1.Nome da sua tabela PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);

Var
ErroMens :String;
begin
ErroMens := E.Message;
if ErroMens = ´Key violation.´ then
begin ShowMessage(´Este Registro já é Cadastrado, Tente Outro !´); Obs:você coloca a mensagem que quizer
action := daAbort;
DBEdit1.SetFocus;
end;

espero ter ajudado, boa sorte.


GOSTEI 0
POSTAR