Fórum tratamento de erro com chave estrangeira. #335023

21/12/2006

0

Bom dia gostaria de saber como tratar a mensagem de erro quando nao existe a chave estrangeira, ou seja em vez de aparecer aquela mensagem em Ingles, gostaria que tratar para aparecer em portugues.
tenho uma tabela de venda e tem que cadastrar o codigo do vendedor
se o codigo do vendedor nao existir pois criei uma chave estrangeira ele tera que trazer um erro mas de outra forma . alguem sabe como :?

Valew gente .


Ciotti

Ciotti

Responder

Posts

21/12/2006

Quartieri

try
ExecSQL;
except
on E: exception do
begin
if Pos(´FK´,E.message) > 0 then
Application.MessageBox(´Registro com relacionamento em outras tabelas. Não é possível excluir.´,´Atenção´,mb_Ok+mb_DefButton1+mb_iconExclamation);
end;
end;


Responder

Gostei + 0

21/12/2006

Ciotti

ola amigo gostaria de saber onde eu coloco esse codigo , e no evento do botao onclick ou nao?



valew!


Responder

Gostei + 0

21/12/2006

Ciotti

eu coloquei essa instrucao no OnPostError do clientdataset mas deu erro na linha
ExecSQL;

o que tenho que fzer para corrigir esse erro?

valeu.


Responder

Gostei + 0

21/12/2006

Quartieri

no caso, eu uso esse codigo numa ADOquery, num client data set não vai funcionar mas coloque tudo num bloco try except se der erro verifique se ele tem ´FK´ da seguinte forma ´if Pos(´FK´,E.message) > 0 then´
ai vc determina a ação a ser tomada no casso de erro.


Responder

Gostei + 0

21/12/2006

Techsoft

Olá, já tentou usar o ReconcileError? eu geralmente utilizo o reconcile error para exibir possíveis erros para o usuário quando estes acontecem.


Usando o reconcile error eu faço o seguinte, no OnReconcileError do ClientDataSet coloco:

  if pos(´foreign key´, E.Message) > 0 then
    MessageDlg(´Registro com referência em outras tabelas.´
      +#13+10+´Não poderá ser excluído.´, mtError, [mbOK], 0)
  else
    Action := HandleReconcileError(DataSet, UpdateKind, E);



Responder

Gostei + 0

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

Aceitar