[firebase-br] procedure em loop
samuel ferreira
samuel.peres.ferreira em gmail.com
Ter Set 2 11:21:49 -03 2008
ola
uso o fb 2.1. necessito fazer uma procedure para gerar um relatorio de
producao. tem q sair em ordem de produtos q atendam os clientes q pediram
menos produtos. entao fiz a logica abaixo, criando uma 'tabela temporaria'.
esta entrando em loop, ai tenho dar um 'stop' no fb.
se alguem puder dar uma olhada na logica, eu agradeco
samuel
ALTER PROCEDURE SPRETORNAPRODUCAO (
COMPUTADOR Varchar(15),
DATAINICIAL Date,
DATAFINAL Date )
RETURNS (
PRODUTO Integer,
DESCRICAO Varchar(50),
MARCA Varchar(15),
QUANTIDADE Numeric(12,0) )
AS
declare wcliente numeric(6);
declare wFaz numeric(1);
declare wQuantidade numeric(15,6);
declare wTransformacao numeric(6);
declare wProduto numeric(6);
.
.
.
. o loop esta na logica abaixo
.
wFaz = 1;
while (wFaz = 1) do
begin
select first 1 cliente, count(*) from temporaria
where computador = :computador
group by CLIENTE
order by 2
into :wCliente, :wQuantidade;
if (:wQuantidade is null) THEN
wQuantidade = 0;
if (wQuantidade = 0) THEN
BEGIN
wFaz = 0;
break;
end
for select t.produto, p.descricao, p.marca, sum(t.quantidade)
from temporaria t, produto p
where t.cliente = :wCliente AND
t.computador = :Computador AND
t.produto = p.produto
group by t.produto, p.descricao, p.marca
into :Produto, :descricao, :marca, :wQuantidade do
BEGIN
delete from temporaria
where computador = :computador AND
produto = :produto;
suspend;
end
end
Mais detalhes sobre a lista de discussão lista