[firebase-br] Exclusão de mestre/detalhe (Resolvido)

Daniel Sonda daniel em mhnet.com.br
Seg Nov 17 16:45:07 -03 2008


Resolvido tirando o "on delete cascade" e definindo uma trigger 
BeforeDelete no mestre que exclui todos os itens.

Att.
Daniel Sonda
www.h2jsolucoes.com.br



Daniel Sonda escreveu:
> 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?
>>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: 
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> __________ Information from ESET NOD32 Antivirus, version of virus 
> signature database 3619 (20081117) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
>




Mais detalhes sobre a lista de discussão lista