Fórum Mensagem de erro na exclusao de registro relacionado #222111
24/03/2004
0
Como faco para me dar uma msg de erro na hora de excluir o registro relacionado (chave estrangeira)?
Se possivel, sem q eu tenha q ir na tbl e verificar se tem algo relacionado a este codigo.
// codigo no botao de exclusao procedure Tfrmpesqcadbanco.btnexcluirClick(Sender: TObject); begin with dados do if sdsbanco.IsEmpty then begin beep; ShowMessage(´Não existem dados para exclusão!´); end else if application.messagebox(PCHAR(´Deseja exluir o Banco ´+ dados.sdsbancoCODBANCO.AsString +´ - ´+ dados.sdsbancoDESCBANCO.AsString +´ ?´),´Atenção!´,mb_iconQuestion+mb_yesno)=idno then Abort else begin sdsbanco.Delete; sdsbanco.ApplyUpdates(0); end; end; //
D7+fb1.5
Grato a todos
Luciano
Lucianorw
Curtir tópico
+ 0Posts
25/03/2004
Lucianorw
procedure Tdados.appeventException(Sender: TObject; E: Exception); begin if ( E is EIBInterBaseError ) then begin if ( EIBInterBaseError(E).IBErrorCode = 335544466 ) then Application.MessageBox( PChar( ´Não é possível excluir este registro, pois existem outras informações no sistema que dependem do mesmo.´ ), ´Atenção !!!´, MB_ICONEXCLAMATION ) else if ( EIBInterBaseError(E).IBErrorCode = 335544510 ) then Application.MessageBox( PChar( ´Não é possível continuar com a operação.´ + #13 + ´O banco de dados está sendo utilizado.´ ), ´Atenção !!!´, MB_ICONEXCLAMATION ) else if ( EIBInterBaseError(E).IBErrorCode = 335544375 ) then Application.MessageBox( PChar( ´O servidor de banco de dados não está aberto.´ + 13 + ´Verifique e tente novamente.´ ), ´Atenção !!!´, MB_ICONEXCLAMATION ) else if ( EIBInterBaseError(E).IBErrorCode = 335544344 ) then Application.MessageBox( PChar( ´Não foi possível encontrar o banco de dados.´ ), ´Atenção !!!´, MB_ICONEXCLAMATION ) else Application.MessageBox( PChar( E.ClassName + ´ - ´ + E.Message ), ´Atenção !!!´, MB_ICONEXCLAMATION ); end; end;
Grato
Luciano
Gostei + 0
25/03/2004
Lucas Silva
try aqui você tenta salvar.. except appeventException(....); end;
Gostei + 0
25/03/2004
Lucianorw
try aqui você tenta salvar.. except appeventException(....); end;
Lucas,
Grato pela sua atenção!!!
Até akele ponto eu ja havia tentado, o problema é justamento o que eu coloco em: except appeventException([b:05ac576a8c]AKI Q NAO ENTENDO[/b:05ac576a8c]);
Grato
Luciano
Gostei + 0
25/03/2004
Sremulador
Gostei + 0
26/03/2004
Lucianorw
Ola,
É este q estou usando, mas como sou novato no assunto nao consigo fazer o q preciso.
Grato
Luciano
Gostei + 0
26/03/2004
Weber
Se você alterar no banco de dados além do Delete você também terá as mensagens de Update e Insert prontas.
Baixe o programa IBExpert (tem uma versão free) que ele faz as alterações no banco com facilidade e ainda mostra o comando SQL usado.
Gostei + 0
26/03/2004
Geno
Vai ver na oentendi a pergunta...
Mas aki eu faco o seguinte :
try
.
.
.
Except
on E: Exception do
begin
dtm.suatabela.Rollback;
ShowMessage(´O sistema nao conseguiu fazer o requisitado.´ + #13 + 13 +
´A mensagem gerada pelo banco foi: ´ + 13 + 13 +
E.Message);
end; // end Exception
End; // end try
Gostei + 0
26/03/2004
Lucianorw
Desisti do applicationevents pq so usa em vcl.
Grato a todos pela ajuda.
Luciano
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)