Re: [firebase-br] Trigger Não funciona!!! O FireBird tem Bug!!!

Daniel Pohren danielpohren em gmail.com
Sex Maio 13 11:19:57 -03 2005


Olha, só, não vou postar uma solução, mas um testemunho de que vc não
está sozinho nesta :-)

Realmente NÃO SEI se isto é um BUG e será corrigido nas próximas
versões do Firebird ou se é algo conceitual, e está certo assim, só
nós não enxergamos...
Mas o fato é QUE:

Se eu tiver uma trigger de BeforeDelete em uma tabela, e esta tiver
uma ForeignKey do tipo CASCADE para outra, quando esclui a principal
ele exclui corretamente os registros na tabela ddetalhe, mas NÃO
EXECUTA a trigger de BeforeDelete na detalhe...

Pergunto, isto é um BUG mesmo?

On 5/13/05, Eliomar <eliomar em promediconet.com.br> wrote:
> Estou usando o a versão 1.5.2 a mais atual né.
> 
> Para resolver o problema eu fiz o seguinte:
> na table Saidas fiz uma trigger before delete
> 
> delete from saidas_itens
>  where saidas_itens.codigo_saidas = old.codigo
> 
> ai resolve o problema, mas dessa forma estou deletando
> manualmente os resgistros e sendo um banco relacional
> o serviço tem que ser do banco e não meu né.
> 
> Agradecido.
> Eliomar,
> ICQ - 167715482
> MSN - eliomar0910 em hotmail.com
> Soft-Data Softwares Administrativos
> hptt://www.promediconet.com.br
> 
> ------------- Segue mensagem original! -------------
> 
> De: Danilo Rogério <danilorsa_betta em yahoo.com.br>
> Data: Fri, 13 May 2005 00:55:40 -0300 (ART)
> Para: FireBase <lista em firebase.com.br>
> Assunto: Re: [firebase-br] Trigger Não funciona!!! O    FireBird tem Bug!!!
> 
> De acordo com seu texto, pode ser um bug sim... Mas eu pergunto pro pessoal da lista... O IBExpert full, registrado e pago ou qualquer outra ferramente tem algum DEBUG dos objetos do banco?
> 
> Isso te ajudaria, eliomar... mas vc veria passar pela trigger da Saída_Itens...
> 
> Em Oracle isso nos ajuda bastante...
> 
> Agora, por ninguém ter respondido, nem o Cantu.. imagino que ele esteja verificando junto aos "pais" do Firebird. Por falar nisso: qual versão do banco vc está usando?
> 
> Eliomar <eliomar em promediconet.com.br> escreveu:
> O assunto é comprido e complicado mas vamos lá...
> Eu fiz uma table Saidas, uma Table Saidas_Itens e table Itens
> e fiz o relacionamento com a chave estrangeira em cascata.
> 
> Até perfeito...
> Na table Saidas_Itens eu fiz uma trigger no after post assim:
> 
> update itens
> set itens.estoque = itens.estoque - saidas_itens.quantidade
> where itens.codigo = new.codigo_itens
> 
> perfeito o estoque foi atualizado...
> 
> na table saidas_itens eu fiz uma trigger no before delete assim:
> 
> update itens
> set itens.estoque = itens.estoque + saidas_itens.quantidade
> where itens.codigo = old.codigo_itens
> 
> até ai perfeito... o estoque volta para o que era antigamente quando
> eu deleto um registro da table Saidas_Itens. Blz né... é isso mesmo
> que tem que acontecer...
> 
> Agora se eu apagar a table Saidas, o próprio banco apaga a saidas_itens
> pois as duas estão relacionada, até ai... perfeito.
> 
> Agora acontece que a trigger não voltou o estoque para o lugar...
> 
> Ai eu perguto... o registro da table Saidas_Itens não foi deletado?
> Então deferia voltar o estoque ou seja fazer o que esta na trigger.
> Isso é um BUG do FireBird?
> 
> Agradecido.
> Eliomar,
> ICQ - 167715482
> MSN - eliomar0910 em hotmail.com
> Soft-Data Softwares Administrativos
> hptt://www.promediconet.com.br
> 
> __________________________________________________
> Converse com seus amigos em tempo real com o Yahoo! Messenger
> http://br.download.yahoo.com/messenger/
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 


-- 
Daniel Pohren
   Naphta Informática




Mais detalhes sobre a lista de discussão lista