C Alves 1 Denunciar post Postado Outubro 14, 2008 pessoal estou precisando fazer o seguinte: E preciso que quando um saldo for atualizado na tabela Saldo_Razao, em um campo DC na tabela D_C apareça D ou C de acordo com o saldo. Esse campo DC pode ser também na própria tabela saldo_razao. Já tentei de tudo mas não dá certo´. É inserido só um C ou só um D em todos os campos DC. Estou usando interbase 7.5 Na ultima tentativa fiz o seguinte: CREATE TRIGGER "DC" FOR "SALDO_RAZAO" ACTIVE AFTER UPDATE POSITION 0 as begin If(new.controle='PASSIVO' and new.saldo >'0')then update D_C set DC='C'; If(new.controle='PASSIVO' and new.saldo <0)then update D_C set DC='D'; If(new.controle='ATIVO'and new.saldo<0)then update D_C set DC='D'; If(new.controle='ATIVO' and new.saldo>0)then update D_C set DC='C' where new.cod_empresa=old.cod_empresa and new.cod_cont=old.cod_cont; end se alguém puder me ajudar agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Outubro 14, 2008 Tenta assim: CREATE TRIGGER "DC" FOR "SALDO_RAZAO" ACTIVE AFTER UPDATE POSITION 0 as begin If(new.controle='PASSIVO' and new.saldo >'0')then update D_C set DC='C' where new.cod_empresa=old.cod_empresa and new.cod_cont=old.cod_cont; If(new.controle='PASSIVO' and new.saldo <0)then update D_C set DC='D' where new.cod_empresa=old.cod_empresa and new.cod_cont=old.cod_cont; If(new.controle='ATIVO'and new.saldo<0)then update D_C set DC='D' where new.cod_empresa=old.cod_empresa and new.cod_cont=old.cod_cont; If(new.controle='ATIVO' and new.saldo>0)then update D_C set DC='C' where new.cod_empresa=old.cod_empresa and new.cod_cont=old.cod_cont; end Compartilhar este post Link para o post Compartilhar em outros sites
C Alves 1 Denunciar post Postado Outubro 14, 2008 Chrnos antes de mais nada muito obrigado pela ajuda. Tentei do jeito que você postou mas continua o mesmo problema. Apareceu C onde devia e onde não devia também. Se você tiver outras sugestóes agradeço muito :wacko: Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Outubro 14, 2008 Não tenho base do Firebird aqui no trampo instalado pra testar, e a sintaxe do sqlserver pra criar triggers é um pouco diferente, mas talvez assim funcione... CREATE TRIGGER "DC" FOR "SALDO_RAZAO" ACTIVE AFTER UPDATE POSITION 0 as begin If (new.controle='PASSIVO' and new.saldo >'0') OR (new.controle='ATIVO' and new.saldo>0) then update D_C set DC='C' where cod_empresa=new.cod_empresa and cod_cont=new.cod_cont Else If(new.controle='PASSIVO' and new.saldo <0) OR (new.controle='ATIVO'and new.saldo<0) then update D_C set DC='D' where cod_empresa = new.cod_empresa= and cod_cont=new.cod_cont; end Compartilhar este post Link para o post Compartilhar em outros sites
C Alves 1 Denunciar post Postado Outubro 14, 2008 ainda não deu certo. Na hora de calcular o saldo, beleza, mas na hora de colocar esse C ou D tá duro :wacko: Compartilhar este post Link para o post Compartilhar em outros sites
C Alves 1 Denunciar post Postado Outubro 15, 2008 Chrnos esqueça meu post anterior. Agora deu certo com ultimo codigo que você indicou. Eu havia esquecido de retirar o trigger anterior e isso estava interferindo. Feito isso ao testa-lo novamente deu certo. Muito obrigado! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Importante: Breve o Senhor Jesus voltará. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Outubro 15, 2008 Hehehehe, o que importa é que conseguiu resolver seu problema amigo. Precisando, estamos ai! ;) Compartilhar este post Link para o post Compartilhar em outros sites