[firebase-br] Erro ao puxar o saldo com STORED PROCEDURE

Luiz Carlos lcarlos2000 em bol.com.br
Seg Jul 25 17:41:32 -03 2011


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






Mais detalhes sobre a lista de discussão lista