[firebase-br] Alguém me ajude POR FAVOR!!!

Antonio Bonelli Junior junior em wwinfo.com.br
Qua Jun 1 16:37:47 -03 2005


Rafael,

Da forma que vc falou eu estaria atualizando o saldo só do lançamento que
estou incluindo/alterando, correto?

Se eu estiver alterando um lançto do dia 25/05/2005, o saldo deste será
atualizado, porém os lançtos de 26/05/2005 em diante não serão
atualizados. É aí que está o problema, preciso atualizar tanto o lançto
que estou alterando quanto os demais.

[]s
Junior


> Junior,
>
> Faz o seguinte, altere esse SP para fazer o cálculo do saldo anterior e
> retorne para dentro do trigger. Se o valor que vc deseja alterar for
> apenas
> do registro que está sendo incluído ou alterado então com certeza
> funciona.
> Faz o teste. ;)
>
> Não se esqueça de colocar as condições de tipo de lançamento no trigger e
> altere o valor usando NEW.SALDO.
>
> []s,
>
> Rafael Cabral
>
> -----Original Message-----
> From: lista-bounces em firebase.com.br
> [mailto:lista-bounces em firebase.com.br]On Behalf Of Antonio Bonelli
> Junior
> Sent: quarta-feira, 1 de junho de 2005 15:40
> To: FireBase
> Subject: Re: [firebase-br] Alguém me ajude POR FAVOR!!!
>
>
> Obrigago Cantu, mas não querendo abusar, como posso fazer então para
> atualizar esse campo "Saldo" quando incluir ou alterar um determinado
> registro na tabela?
>
> []s
> Junior
>
>
>> Você está criando um loop infinito, pois a procedure atualiza
>> registros na tabela, e o trigger da tabela chama a procedure, e o
>> processo se repete infinitamente...
>>
>> []s
>> Cantu
>> http://www.warmboot.com.br
>> FireBase - http://www.FireBase.com.br
>>
>> ABJ> Boa tarde a todos!
>>
>> ABJ> Desculpem a insistência, mas estou precisando muito resolver o
>> problema na
>> ABJ> SP que estou utilizando para atualizar saldos bancários.
>>
>> ABJ> Tenho a necessidade de atualizar saldos a cada registro
>> inserido/alterado
>> ABJ> em minha tabela e através de exemplos postados na lista criei a
>> procedure
>> ABJ> abaixo, porém ao ser executada é retornado o seguinte erro: "Too
>> many
>> ABJ> concurrent executions of the same request".
>>
>> ABJ> Pergunto: Como posso resolver esse problema, pois necessito
>> (realmente) do
>> ABJ> saldo em cada registro da tabela?
>>
>> ABJ> Se alguém tiver alguma idéia, POR FAVOR, me ajude...
>>
>> ABJ> Obrigado
>> ABJ> Junior
>>
>>
>> ABJ> *** Procedure ***
>> ABJ> ================ABJ> CREATE PROCEDURE ATUALIZARSALDOS (
>> ABJ>     DATALANCTO DATE,
>> ABJ>     CODCONTA INTEGER)
>> ABJ> AS
>> ABJ> DECLARE VARIABLE ULTIMOLANCTO INTEGER;
>> ABJ> DECLARE VARIABLE SALDOANTERIOR NUMERIC(15,2) = 0;
>> ABJ> DECLARE VARIABLE NROLANBCO INTEGER;
>> ABJ> DECLARE VARIABLE TIPOLANCTO VARCHAR(1);
>> ABJ> DECLARE VARIABLE VALORLANCTO NUMERIC(15,2);
>> ABJ> BEGIN
>> ABJ>    SELECT MAX(NroLanBco)
>> ABJ>    FROM MovBancario
>> ABJ>    WHERE CodConta = :CodConta AND DataLancto < :DataLancto
>> ABJ>    INTO :UltimoLancto;
>>
>> ABJ>    SELECT Saldo
>> ABJ>    FROM MovBancario
>> ABJ>    WHERE NroLanBco = :UltimoLancto
>> ABJ>    INTO :SaldoAnterior;
>>
>> ABJ>    FOR SELECT NroLanBco, TipoLancto, ValorLancto
>> ABJ>        FROM MovBancario
>> ABJ>        WHERE CodConta = :CodConta AND DataLancto >= :DataLancto
>> ABJ>        ORDER BY DataLancto, NroLanBco
>> ABJ>        INTO :NroLanBco, :TipoLancto, :ValorLancto
>> ABJ>    DO
>> ABJ>    BEGIN
>> ABJ>      IF (:TipoLancto = 'C') THEN BEGIN
>> ABJ>        SaldoAnterior = :SaldoAnterior + :ValorLancto;
>> ABJ>      END ELSE BEGIN
>> ABJ>        SaldoAnterior = :SaldoAnterior - :ValorLancto;
>> ABJ>      END
>> ABJ>      UPDATE MovBancario
>> ABJ>      SET Saldo = :SaldoAnterior
>> ABJ>      WHERE NroLanBco = :NroLanBco;
>> ABJ>    END
>> ABJ> END
>>
>> ABJ> *** Trigger ***
>> ABJ> ==============ABJ> CREATE TRIGGER T_MOVBANCARIO_AI FOR MOVBANCARIO
>> ABJ> ACTIVE AFTER INSERT OR UPDATE POSITION 0
>> ABJ> AS
>> ABJ> BEGIN
>> ABJ>   EXECUTE PROCEDURE AtualizarSaldos(New.DataLancto, New.CodConta);>
> ABJ> END
>>
>>
>>
>> ______________________________________________
>> 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
>
>
>
> ______________________________________________
> 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
>





Mais detalhes sobre a lista de discussão lista