FIrebird - Stored Procedure com While


CREATE OR ALTER PROCEDURE EXECUTA_VALORES
returns (
    NOME_ varchar(50),
    VALOR_ NUMERIC(15,2))
as
declare variable i integer;
declare variable Val NUMERIC(15,2);
declare variable Div NUMERIC(15,2);

begin
   for select NOME, VALOR from TESTE
     into :NOME_, :Val
   do
   begin

   if (:Val >= 4999) then
     begin
       Div =  CAST((:Val/4999) AS integer) + 1;
       i = 1;
       while (i < div) DO
         begin
           VALOR_ = :VAL/DIV;
           i = i+1;
           suspend;
         end

     end
   else
     begin
       VALOR_ = :Val;
     end
   suspend;
   end

end


//Para executar

select * from executa_valores

Comentários

Postagens mais visitadas deste blog

Delphi - ReportBuilder – Conhecendo os Recursos deste Gerador de Relatórios

Delphi - Stringgrid com Alinhamento à Direita, à Esquerda e Centralizado

Delphi - Instalando a versão Trial do Delphi 2007 for Win 32