[firebase-br] Exclusão de mestre/detalhe
Daniel Sonda
daniel em mhnet.com.br
Seg Nov 17 15:34:05 -03 2008
Pesquisando sobre o assunto, encontrei isso no Firebird Tracker
tracker.firebirdsql.org/browse/CORE-1541
Pelo que entendi, não é bug. É assim mesmo que funciona.
Portanto, acho q terei que fazer a exclusão dos itens numa trigger
before delete do mestre e abandonar o cascade delete.
Vou testar e posto o resultado.
Att.
Daniel Sonda
www.h2jsolucoes.com.br
Daniel Sonda escreveu:
> Olá pessoal!
>
> Identifiquei um comportamento do Firebird que achei anormal.
>
> Cenário:
> - Duas tabelas num relacionamento mestre detalhe, com cascade update
> e delete na FK do detalhe com o mestre.
> - Trigger BeforeDelete no detalhe com acesso a dados do registro
> mestre, usada para log de exclusão.
>
> Problema:
> - Ao excluir o registro mestre, a trigger BeforeDelete dos registros
> detalhes é disparada.
> - Esta trigger acessa dois campos do registro mestre para gerar um
> log de exclusão: select A, B from mestre where pk_mestre =
> old.pk_mestre into :var_A, :var_B.
> - Aqui está o problema: var_A e var_B sempre retornam NULL, como se o
> registro mestre já tivesse sido excluído quando os registros detalhes
> estão sendo excluídos. Ou seja, o mestre não é localizado.
>
> É assim mesmo que funciona? Ao exclui o mestre, na trigger before
> delete dos detalhes eu não consigo mais consultar os dados do mestre?
>
Mais detalhes sobre a lista de discussão lista