[firebase-br] Erro ao puxar o saldo com STORED PROCEDURE
Eduardo Jedliczka
edujed em gmail.com
Seg Jul 25 17:49:37 -03 2011
Da forma como a procedure está escrita, é necessário que exista valores em
ambos os campos...
Lembre-se: NULL (traduzindo, algum valor desconhecido) somado à qualquer
valor, sempre será NULL (algum outro valor desconhecido).
Para resolver isto, utilize o coalesce.
for select Coalesce(sum(VL_RECEBER),0) - Coalesce(sum(VL_PAGAR),0) from
contas
==========================
Eduardo Jedliczka
Apucarana - Pr
==========================
Em 25 de julho de 2011 17:41, Luiz Carlos <lcarlos2000 em bol.com.br> escreveu:
> Tenho uma procedure cfe. abaixo:
>
> SET TERM ^ ;
>
> CREATE OR ALTER PROCEDURE SP_SUMCONTAS (
> dataini date,
> datafin date)
> returns (
> total numeric(15,2))
> as
> begin
> for select sum(VL_RECEBER) - sum(VL_PAGAR) from contas
> where DT_VCTO between :dataini and :datafin
> into :total do
> begin
>
> suspend;
> end
> end^
>
> Uso o codigo abaixo no delphi para puxar o saldo:
>
> dataini := DIA1.Date ;
> datafin := DIA2.Date ;
>
> IBSProc.StoredProcName := 'SP_SUMCONTAS';
> IBSProc.ParamByName('dataini').Value :=DIA1.Date ; //datetimerpicker
> IBSProc.ParamByName('datafin').Value :=DIA2.Date ; //datetimerpicker
> IBSProc.ExecProc;
> edsaldo.Text:= CurrtoStr(IBSProc.ParamByName('total').AsCurrency);
>
> Funciona corretamente se no periodo pesquisado tiver lançamentos nos campos
> VL_RECEBER e VL_PAGAR, porem se só tiver lançamentos em um dos campos o
> saldo dá 0,00. Por exemplo se no periodo só tiver contas a pagar o saldo dá
> 0,00 ou se no periodo só tiver contas a receber tambem dá 0,00. Como
> corrigir isso? o erro está na procedure ou no modo como estou chamando ela
> no Delphi?
>
> Grato
>
> Luiz Carlos
>
>
>
> ______________________________________________
> 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