tratamento de erro com chave estrangeira.

Delphi

21/12/2006

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

Curtidas 0

Respostas

Quartieri

Quartieri

21/12/2006

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;


GOSTEI 0
Ciotti

Ciotti

21/12/2006

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



valew!


GOSTEI 0
Ciotti

Ciotti

21/12/2006

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

o que tenho que fzer para corrigir esse erro?

valeu.


GOSTEI 0
Quartieri

Quartieri

21/12/2006

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.


GOSTEI 0
Techsoft

Techsoft

21/12/2006

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



GOSTEI 0
POSTAR