Mensagem de erro na exclusao de registro relacionado
Ola,
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.
D7+fb1.5
Grato a todos
Luciano
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
Curtidas 0
Respostas
Lucianorw
24/03/2004
Achei isto, mas naum sei onde colocar para chamar as msg de erro
Grato
Luciano
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
Lucas Silva
24/03/2004
try aqui você tenta salvar.. except appeventException(....); end;
GOSTEI 0
Lucianorw
24/03/2004
[quote:05ac576a8c=´Lucas Alves Silva´][/quote:05ac576a8c]
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
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
Sremulador
24/03/2004
tem um componente appevents acho que e esse o nome que serve para pegar os eventos gerais do delphi inclusive erros.
GOSTEI 0
Lucianorw
24/03/2004
tem um componente appevents acho que e esse o nome que serve para pegar os eventos gerais do delphi inclusive erros.
Ola,
É este q estou usando, mas como sou novato no assunto nao consigo fazer o q preciso.
Grato
Luciano
GOSTEI 0
Weber
24/03/2004
O Firebird é praticamente igual ao Interbase e se a versão 1.5 for seguir o mesmo padrão tem como alterar as Mensagem de Exception do proprio banco de dados.
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.
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
Geno
24/03/2004
Rpz..nao to entendendo bem qual a dificuldade ai....
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
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
Lucianorw
24/03/2004
Problema resolvi usando sql.
Desisti do applicationevents pq so usa em vcl.
Grato a todos pela ajuda.
Luciano
Desisti do applicationevents pq so usa em vcl.
Grato a todos pela ajuda.
Luciano
GOSTEI 0