Fórum Como tratar integridade do banco ! #362686
19/08/2008
0
Olá pessoal, estou com dificuldades em tratar a integridade do banco, no meu caso Firebird 1.5 + Delphi 7 + IBX, o que está acontecendo é o seguinte quando vou deletar um produto cadastrado o programa gera um erro de integridade pois este produto já está em outra tabela(Item Venda) , gostaria de saber onde e como posso tratar esse erro para que retorne somente uma mensagem alertando que esse produto não pode ser excluído !
Obrigado
Afterdev
Curtir tópico
+ 0Posts
19/08/2008
Paulo
Gostei + 0
19/08/2008
Afterdev
procedure TformPadrao1.ApplicationEvents1Exception(Sender: TObject;
E: Exception);
begin
if E is EIBInterBaseError then
begin
case EIBInterBaseError(E).IBErrorCode of
-530: {Violação de chave estrangeira, 335544466}
Application.MessageBox(PChar(´Não é possível excluir este registro.´),
´Atenção !!!´, MB_ICONEXCLAMATION);
-803: {Violação de chave primária, 335544665}
Application.MessageBox(PChar(´Registro já cadastrado.´),
´Atenção !!!´, MB_ICONEXCLAMATION);
else
Application.MessageBox(PChar(E.ClassName + ´ - ´ + E.Message),
´Atenção !!!´, MB_ICONEXCLAMATION);
end;
end;
end;preciso de ajuda............
Gostei + 0
20/08/2008
Afterdev
procedure TformPadrao1.ApplicationEvents1Exception(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 = 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;
valeu.......
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)