Como tratar erro de Primary key ?Violação da chave ??
Oi como eu faço para mostra uma msg em portugues violaçao da chave
Primary key ???
Primary key ???
Anonymous
Curtidas 0
Respostas
Moonlight
10/03/2003
Evite que exista violação da chave ;)
Serio, faz com que a chave se crie sozinha, com base na ultima jah criada. Se for pro usuario informar o campo chave, enrola.
A nao ser que ele seja RG ou CPF sei lá.. ou uma coisa pessoal
aí eu nao sei
Serio, faz com que a chave se crie sozinha, com base na ultima jah criada. Se for pro usuario informar o campo chave, enrola.
A nao ser que ele seja RG ou CPF sei lá.. ou uma coisa pessoal
aí eu nao sei
GOSTEI 0
Anonymous
10/03/2003
Cara isso e correr do Problema ,eu quero enfrentar e aprender como se tratar
os erros ... :x
os erros ... :x
GOSTEI 0
Okama
10/03/2003
Faz o seguinte, antes de gravar, faça uma consulta pela chave primária se existir, crie você mesmo a mensagem de erro.
Pois dependendo da base de dados que vc usa, o Delphi não trata erros desse tipo (como Access, ODBC...)
Pois dependendo da base de dados que vc usa, o Delphi não trata erros desse tipo (como Access, ODBC...)
GOSTEI 0
Anonymous
10/03/2003
Tente este código (No Evento OnPostError):
procedure TDM.tbTabelaPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
begin
if E.Message = ´Key violation.´ then
begin
Action := daAbort;
raise Exception.Create(´Este registro já foi cadastrado!´);
end;
end;
Espero que funcione!
procedure TDM.tbTabelaPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
begin
if E.Message = ´Key violation.´ then
begin
Action := daAbort;
raise Exception.Create(´Este registro já foi cadastrado!´);
end;
end;
Espero que funcione!
GOSTEI 0
Anonymous
10/03/2003
o código deve ser inserido no evento OnPostError do componente de banco de dados (Table ou Query).
Toda vez que ocorrer um erro de gravação no banco de dados este evento será executado, sendo que na variável de parâmetro ´E´ deste procedimento é armazenado a mensagem que será apresentada na tela.
No caso de Key Violation a mensagem é exatamente esta: ´Key violation.´.
Para realizar um tratamento deste erro, testa-se se a mensagem ocorrida é ´Key violation.´, se for verdadeiro o processo de gravação é abortado (Action := daAbort).
Código Completo:
Procedure TForm1.Table1PostError(DataSet: TDataSet; E: EDatabaseError;var Action: TDataAction);
Var
ErroMens :String;
begin
ErroMens := E.Message;
if ErroMens = ´Key violation.´ then begin ShowMessage(´Chave Primária Inválida !´);
action := daAbort;
end;
end;
Toda vez que ocorrer um erro de gravação no banco de dados este evento será executado, sendo que na variável de parâmetro ´E´ deste procedimento é armazenado a mensagem que será apresentada na tela.
No caso de Key Violation a mensagem é exatamente esta: ´Key violation.´.
Para realizar um tratamento deste erro, testa-se se a mensagem ocorrida é ´Key violation.´, se for verdadeiro o processo de gravação é abortado (Action := daAbort).
Código Completo:
Procedure TForm1.Table1PostError(DataSet: TDataSet; E: EDatabaseError;var Action: TDataAction);
Var
ErroMens :String;
begin
ErroMens := E.Message;
if ErroMens = ´Key violation.´ then begin ShowMessage(´Chave Primária Inválida !´);
action := daAbort;
end;
end;
GOSTEI 0