GARANTIR DESCONTO

Fórum Não Executa Mais Trigger #48926

17/01/2005

0

Pessoal, uso o Firebird 1.5 e Delphi 7 Enterprise com IBX.
Criei a seguinte trigger:

SET TERM ^ ;

CREATE TRIGGER SERVICOS_BD0 FOR SERVICOS
ACTIVE BEFORE DELETE POSITION 0
AS
begin
delete from servicos_items where servico = old.id;
end
^

SET TERM ; ^


Porém, ela não está excluindo os registros da outra tabela. O que estou fazendo de errado?

Outra coisa, algumas triggers, também estão ativas, e não estão executando.

E, o registro está sendo excluido somente se eu usar um navigator, mas quando uso o comando

IBDataset.Delete;

Não está escluindo, alguém poderia me ajudar?


Thomaz_prg

Thomaz_prg

Responder

Posts

18/01/2005

Fsflorencio

Amigo, não sei como vc está fazendo, mas já tive problemas com IBX. Quando o componente IBDatabase ficava no mesmo datamodule das IbQuery´s tudo funcionava bem, mas quando o ibdatabase ficava em outro datamodule, era só fechar o sistema que ele dava um Rollback por conta própria (mesmo eu commitando todas as transações) e perdia todas as informações.

Julgo que seja um [b:89947a0771]problema com os componentes IBX[/b:89947a0771], pois quando vc vai pelo dbnavigator (que deve ser de algum outro software) ele funciona normal.

Faça um teste tendo em vista esta opinião, caso seja este o problema, então tente atualizar a versão do seu IBX pra ver se resolve e se não funcionar, tente usar outra coisa como IBEXPRESS ou IBO, mas se for dar muito trabalho, então coloque o IBDATABASE junto com todos os componentes de acesso que vai funcionar. Pena que se tiver muita coisa no datamodule os componentes podem não caber no espaço embolando tudo!


Responder

Gostei + 0

18/01/2005

Thomaz_prg

Colega, quanto a mudança para DBExpress ou outra tecnologia, acho que pra mim ficaria complicado, pois o projeto está pronto e todo estruturado para IBX. A mudança necessitaria de muito tempo, portanto pra mim não seria viável. Quanto a questão do datamodule, o ibdatabase, o transaction, os datasets e o datasource estão no mesmo datamodule.

E aí pessoal, mais alguém... tô realmente com urgência , pois, sem motivo aparente, o banco parou de funcionar.


Responder

Gostei + 0

18/01/2005

Gandalf.nho

Como o colega sugeriu acima, o seu IBX está atualizado? Se não, pegue a última versão em [url]http://codecentral.borland.com/codecentral/ccweb.exe/author?authorid=102[/url] e veja se ajuda.


Responder

Gostei + 0

18/01/2005

Thomaz_prg

Olá...
Obrigado pela atenção e pela ajuda...
Mas creio não ser este meu problema pois, se uso um dbnavigator, e clico em excluir, ele exclui, porém se faço assim:

ibdataset.delete;
ibTransaction.CommitRetaining;

Ele não exclui. E mesmo quando excluo com o dbnavigator, a trigger não está sendo disparada. Mas, vou fazer a atualização e ver o q acontece.

Valew...


Responder

Gostei + 0

19/01/2005

Thomaz_prg

Alguém poderia me ajudar??? Já tô ficando com os cabelos brancos, e não acho solução pro meu problema!


Responder

Gostei + 0

19/01/2005

Gandalf.nho

A tabela servicos_itens é filha da tabela servicos (onde está a trigger)? Se sim, não é mais fácil usar um relacionamento do tipo DELETE CASCADE para apagar os registros relacionados na tabela filha?


Responder

Gostei + 0

28/01/2005

Rocsadan

thomaz_prg blz?

Já tive problemas assim:

Verifique as opções:

Clique duplo no IBTransaction
E marque a opção.

ead_committed

é

autostopaction= saRollbackRetaining
defaultaction= TACommitRetaining

Ainda verifique se a sua trigger esta realmente ativa, pode ser isso e foi meu caso.


Responder

Gostei + 0

28/01/2005

Thomaz_prg

Valeu pessoal pela ajuda de todos....

Consegui resolver meu problema, fazendo um BKP, excluindo todas as triggers e restaurando o bkp.... funcionou após ter feito isso 3 vezes....
Mas agora tá tudo ok...


Muito Obrigado a todos!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar