GARANTIR DESCONTO

Fórum Como tratar erro de Primary key ?Violação da chave ?? #143805

10/03/2003

0

Oi como eu faço para mostra uma msg em portugues violaçao da chave
Primary key ???


Anonymous

Anonymous

Responder

Posts

10/03/2003

Moonlight

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


Responder

Gostei + 0

10/03/2003

Anonymous

Cara isso e correr do Problema ,eu quero enfrentar e aprender como se tratar
os erros ... :x


Responder

Gostei + 0

10/03/2003

Okama

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...)


Responder

Gostei + 0

10/03/2003

Anonymous

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!


Responder

Gostei + 0

10/03/2003

Anonymous

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;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar