returning_values não está funcionando

Firebird

30/01/2007

Pessoal,
Estou tentando seguir um modelo do foi exposto na Revista ClubeDelphi 64 e não estou conseguindo.

O problema que a sp que retorna o saldo anterior não esta funcionando, já testei ela sozinha e me retorna o valor corretor, só que quando rodo ela dentro de outra sp ela não retorna o valor correto, por que?

Aqui esta criação das duas sp´s:

CREATE PROCEDURE SP_RETORNA_SALDO_ANTERIOR ( id_conta integer, id_subconta smallint, dt_saldo date)
returns ( vlr_saldo numeric(15,2))
as
begin
select VLR_SALDO from CAIXA_SALDO where ID_CONTA = :id_conta and ID_SUBCONTA = :id_subconta and
DT_SALDO = (select MAX( DT_SALDO ) from CAIXA_SALDO where DT_SALDO < :dt_saldo )
into :VLR_SALDO;
end

CREATE PROCEDURE SP_FECHAMENTO_CAIXA ( dt_final date)
as
declare variable dt_inicio date;
declare variable saldo_anterior numeric(15,2);
declare variable vlr_lan numeric(15,2);
declare variable tipo_lan char(1);
declare variable valor_lan numeric(15,2);
begin
select dt_fechamento from EMPRESA into dt_inicio;

execute procedure SP_RETORNA_SALDO_ANTERIOR( 1, 1, :DT_INICIO ) returning_values :saldo_anterior ;

for select vlr_lancto, tp_lancto from CAIXA_LANCAMENTO where dt_lancto between :dt_inicio and :dt_final into :valor_lan, :tipo_lan do
begin
if ( :tipo_lan = ´C´ ) then
vlr_lan = valor_lan;
else
vlr_lan = - valor_lan;

saldo_anterior = saldo_anterior + vlr_lan;
end

execute procedure SP_ATUALIZA_SALDO_CONTA( 1, 1, :DT_FINAL, :saldo_anterior );
end

Já não sei mais o que fazer. Esta faltando alguma coisa que não estou vendo?

Rodolfo


Rodolfo.pirolo

Rodolfo.pirolo

Curtidas 0

Respostas

Rodolfo.pirolo

Rodolfo.pirolo

30/01/2007

Só para complementar uso Firebird 1.5 e fiz os testes no ibexpert.


GOSTEI 0
POSTAR