[firebase-br] FOR EXECUTE STATEMENT

bvrenato bvrenato em click21.com.br
Dom Nov 15 20:59:17 -03 2009


Boa noite pessoal,

Estou precisando fazer uma SP que faça uma varredura no banco conforme um select
com where dinâmico e, além das várias linha da tabela, retorne um resumo das
mesmas. Este resumo estou montando em variaveis locais dentro do laço DO,
e após o término do laço atribuo os valores dessas variáveis a variáveis de
retorno (returns).
Então fiz assim:

CREATE PROCEDURE SP_CONSULTA(
     iOCORRENCIA INTEGER,
     iDATAINICIAL  DATE,
     iDATAFINAL     DATE)
RETURNS(
      VAR_RETORNO1 INTEGER,
      VAR_RETORNO2 INTEGER,
      VAR_RETORNO3 INTEGER,
      VAR_RETORNO4 INTEGER)
AS
    DECLARE RESUMO1 INTEGER;
    DECLARE RESUMO2 INTEGER;
BEGIN
     ...
     FOR EXECUTE STATEMENT vSELECT
     INTO
        :VAR_RETORNO1;
        :VAR_RETORNO2;
     DO
     BEGIN
         DEFINO  O  RESUMO1 E RESUMO2 AQUI;
         SUSPEND;
     END

     :VAR_RETORNO3 = RESUMO1;
     :VAR_RETORNO4 = RESUMO2;
     SUSPEND;
END;

___________________________________________________________________________________
Para fazer uma ligação DDD pra perto ou pra longe, faz um 21. A Embratel tem
tarifas muito baratas esperando por você. Aproveite!





Mais detalhes sobre a lista de discussão lista