[firebase-br] Loop em Procedures
Marcio O. Nascimento (Forzza)
mnascimento em forzza.com.br
Qua Jul 27 08:56:57 -03 2005
Pessol, bom dia a todos.
Estou com problemas na execucao de uma Procedure, onde preciso fazer um Loop no resultado do select, todavia a procedure retorna erro e nao executa as devidas insercoes.
Subscrevo a Procedure para que os senhores na medida de suas possibilidades possa analisar, Obrigado.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE PROCEDURE PROC_ABERTURA_CAIXA (
DATA_ATUAL DATE)
AS
DECLARE VARIABLE DATA_CX DATE;
DECLARE VARIABLE SALDO_CX NUMERIC(18,2);
DECLARE VARIABLE PRODUTO SMALLINT;
begin
select first 1 a.data from mvto_caixa a
where a.data = :data_atual
into :DATA_CX;
if (data_cx >= data_atual ) then
begin
Exception Erro_Abertura_Caixa;
suspend;
end
select max(a.data) from mvto_caixa a
where a.data < :data_atual
into :data_cx;
for select cd_produto from produtos
into :produto
do
begin
suspend;
select b.data, b.saldo_fin_enc from mvto_caixa b
where b.data = :data_cx
and b.cd_produto = :produto
into :data_cx, :saldo_cx;
INSERT INTO MVTO_CAIXA
(data, cd_produto, saldo_ini_enc, saldo_fin_enc, saldo_ini_fut, saldo_fin_fut)
VALUES
(:data_cx, :produto, :saldo_cx, :saldo_cx,0,0);
end
suspend;
end
Mais detalhes sobre a lista de discussão lista