Fazer com que o delphi retorne o número do erro.
02/09/2004
0
Olá,
Tenho duas tabelas (access) uma chada Marca e outra chamada Produto fiz o relacionamento de 1 para N no access.
Se vc tenta excluir uma marca que está cadstrada em alguim produto dá um erro. Eu gostaria de interceptar esse erro antes dele ser mostrado para o usuário e mandar a minha mensagem de erro.
Existe a possíbilidade de fazer isso? eu pensei em pegar o número do erro, mas não sei como fazer isso.
desde já muito obrigado.
Tenho duas tabelas (access) uma chada Marca e outra chamada Produto fiz o relacionamento de 1 para N no access.
Se vc tenta excluir uma marca que está cadstrada em alguim produto dá um erro. Eu gostaria de interceptar esse erro antes dele ser mostrado para o usuário e mandar a minha mensagem de erro.
Existe a possíbilidade de fazer isso? eu pensei em pegar o número do erro, mas não sei como fazer isso.
desde já muito obrigado.
Balceiro
Curtir tópico
+ 0
Responder
Posts
12/09/2004
Gandalf.nho
Dê uma pesquisada no help do Delphi sobre Exception e você verá como fazer isso.
Responder
12/09/2004
Edmarss
Application.OnException:=TrataErros;
Procedure Trataerros(Sender: TObject; E: Exception);
Var
mensagem: String;
Begin
If Pos(UpperCase(´is Not a valid date´), UpperCase(E.Message)) <> 0 Then
Mensagem:=´Data inválida, proceda a correção.´;
If (Pos(UpperCase(´key violation´), UpperCase(E.Message)) <> 0) Or (Pos(UpperCase(´Violation of primary´), UpperCase(E.Message)) <> 0) Then
Mensagem:=´Houve violação de Chave. Registro já existe.´;
If Pos(UpperCase(´Input value´), UpperCase(E.Message)) <> 0 Then
Mensagem:=´Campo preenchido com valor não válido. Proceda a correção.´;
If Mensagem=´´ Then Begin
MessageDlg(E.Message, mtwarning, [mbOk], 0);
End Else Begin
MessageDlg(Mensagem, mtwarning, [mbOk], 0);
End;
End;
Procedure Trataerros(Sender: TObject; E: Exception);
Var
mensagem: String;
Begin
If Pos(UpperCase(´is Not a valid date´), UpperCase(E.Message)) <> 0 Then
Mensagem:=´Data inválida, proceda a correção.´;
If (Pos(UpperCase(´key violation´), UpperCase(E.Message)) <> 0) Or (Pos(UpperCase(´Violation of primary´), UpperCase(E.Message)) <> 0) Then
Mensagem:=´Houve violação de Chave. Registro já existe.´;
If Pos(UpperCase(´Input value´), UpperCase(E.Message)) <> 0 Then
Mensagem:=´Campo preenchido com valor não válido. Proceda a correção.´;
If Mensagem=´´ Then Begin
MessageDlg(E.Message, mtwarning, [mbOk], 0);
End Else Begin
MessageDlg(Mensagem, mtwarning, [mbOk], 0);
End;
End;
Responder
Clique aqui para fazer login e interagir na Comunidade :)