[firebase-br] Erro estranho
W O
sistemas2000profesional em gmail.com
Qua Mar 20 18:36:57 -03 2013
Tu trigger está INACTIVE.
Saludos.
Walter.
2013/3/20 Zottis <bzottis em ig.com.br>
> Pessoal, ta acontecendo uma coisa muito doida
>
>
>
> Tenho uma rotina no delphi que verifica se o valor pago(Inserido pelo
> usuário) é menor, maior ou igual ao saldo da ContaAPagar Se ele for menor,
> ele cadastra um pagamento e essa tabela pagamento tem um gatilho que soma
>
> Os pagamentos e atualiza a tabela ContaAPagar
>
> Se ele for maior ou igual ele cadastra um pagamento e já da baixa na conta
>
> O que esta acontecendo é que quando a segunda opção é acionada(maior ou
> igual)
>
> Ele atualiza a tabela de contaAPagar e não dispara o gatilho.
>
>
>
> Onde será que estou errando?
>
> A trigger é essa:
>
>
>
> CREATE OR ALTER TRIGGER TG_SOMA_DEBITO FOR DEBITOS
>
> INACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0
>
> AS
>
> begin
>
> if (inserting) then
>
> execute procedure sp_soma_debito(new.contano) ;
>
> else
>
> if ((deleting) or (updating)) then
>
> execute procedure sp_soma_debito(Old.contano) ;
>
> end
>
>
>
> CREATE OR ALTER PROCEDURE SP_SOMA_DEBITO (
>
> conta_no integer)
>
> as
>
> declare variable total_pago numeric(15,2);
>
> begin
>
> select sum(d.valor)
>
> from debitos d
>
> where d.contano =:conta_no
>
> and deletado = 'N'
>
> into :total_pago;
>
>
>
> if (:total_pago is null) then total_pago = 0;
>
>
>
> update ctapag
>
> set totalpago = :total_pago
>
> where contano = :conta_no;
>
> end
>
>
>
> e a rotina é essa:
>
> if Valor_pago_Lote >= DadosZCE.CtaPagSALDO.Value then
>
> begin
>
>
>
> DadosZCE.DebitosVALOR.Value :=
> DadosZCE.CtaPagSALDO.Value;
>
> Valor_Para_o_caixa :=
> DadosZCE.CtaPagSALDO.Value;
>
> dadoszce.Debitos.Post;
>
> dadoszce.Debitos.ApplyUpdates;
>
> //DadosZCE.MDOTransaction.CommitRetaining;//aqui tentei
> comitar antes de atualizar a Conta a Pagar mas tambem nao adiantou
>
>
>
> DadosZce.CtaPag.edit;
>
> DadosZce.CtaPagPAGO.Value :='S';
>
> DadosZce.CtaPagDataPgto.Value :=
> DATA_CALENDARIO;
>
> DadosZce.CtaPag.Post;
>
> dadosZce.CtaPag.applyupdates;
>
> //DadosZCE.MDOTransaction.CommitRetaining;
>
>
>
> end else
>
> if Valor_pago_Lote < DadosZCE.CtaPagSALDO.Value then
>
> begin
>
>
>
> DadosZCE.Debitos.edit;
>
> DadosZCE.DebitosVALOR.Value := Valor_pago_Lote;
>
> dadoszce.Debitos.Post;
>
> dadoszce.Debitos.ApplyUpdates;
>
> //DadosZCE.MDOTransaction.CommitRetaining;
>
>
>
> end;
>
>
>
> DadosZCE.MDOTransaction.CommitRetaining;
>
>
>
> ______________________________________________
> 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
>
Mais detalhes sobre a lista de discussão lista