[firebase-br] Ajuda SP

Eduardo Jedliczka edujed em gmail.com
Qui Abr 14 23:43:42 -03 2005


Michelle,

para uma de suas primeiras SPs esta está bem complicadinha, não acha ???

Então qual é o verdadeiro propósito desta SP ??? Assim podemos sugerir 
conceitos mais práticos e simples...

Visto que Execute Statement é algo duro de debugar e um verdadeiro 
desperdício de "material bélico"...

  [s]

  ==========================
  Eduardo Jedliczka
  Apucarana - Pr
  ==========================


----- Original Message ----- 
From: "Michelle - House" <michelle em housesoft.com.br>
To: "Lista firebase" <lista em firebase.com.br>
Sent: Thursday, April 14, 2005 7:09 PM
Subject: [firebase-br] Ajuda SP


> Olá,
>
>
> Estou começando a trabalhar agora com SP, e estou com um probleminha,
> construi a procedure abaixo
>
> Criei sem problemas mas qdo tento executá-la me retorna o seguinte erro:
>
> Invalid token.
> Dynamic SQL Error.
> SQL error code = -104.
> Token unknown - line 1, char 36.
> FROM.
>
> Será que alguém poderia me ajudar a encontrar onde está o erro que cometi.
>
> Desde já agradeço ajuda.
>
> Michelle
>
>
> CREATE PROCEDURE REL_BAL_SEMESTRAL
> (
>  DATAINI    DATE,
>  DATAFIM    DATE,
>  COMPENSADO INTEGER,
>  EMP        VARCHAR(2),
>  CONTROLE   INTEGER,
>  NUM_MESES  INTEGER
> )
> AS
> DECLARE VARIABLE SWHERE        VARCHAR(200);
> DECLARE VARIABLE SQL               VARCHAR(200);
> DECLARE VARIABLE CONTADOR    INTEGER;
> DECLARE VARIABLE NCOUNT        INTEGER;
> DECLARE VARIABLE SCC           VARCHAR(50);
> DECLARE VARIABLE SCODCONTA     VARCHAR(50);
> DECLARE VARIABLE SCODSUBCONTA  VARCHAR(50);
> DECLARE VARIABLE SENTSAI       VARCHAR(20);
> BEGIN
>  IF (COMPENSADO = 1) THEN
>     SWHERE = 'WHERE DATPAG BETWEEN :DATAINI AND :DATAFIM AND COMPENSADO = 
> 1
> AND EMP = :EMP';
>  ELSE IF (COMPENSADO = 0) THEN
>     SWHERE = 'WHERE DATVEN BETWEEN :DATAINI AND :DATAFIM AND COMPENSADO = 
> 0
> AND EMP = :EMP';
>  /* (COMPENSADO = 2) VER DEPOIS QDO FOR */
>  SQL = 'SELECT COUNT(DISTINCT(CODSUBCONTA) FROM LANC_FINAN' || SWHERE;
>  EXECUTE STATEMENT :SQL
>  INTO :NCOUNT;
>  SQL = 'SELECT DISTINCT(CODSUBCONTA), CODCONTA, ENTSAI FROM LANC_FINAN ' 
> ||
> SWHERE;
>  CONTADOR = 1;
>  WHILE (CONTADOR <= NCOUNT) DO
>  BEGIN
>    FOR EXECUTE STATEMENT :SQL
>    INTO :SCODSUBCONTA, :SCODCONTA, :SENTSAI
>    DO
>    BEGIN
>        EXECUTE PROCEDURE INS_CC_REL_SEMESTRAL
>        (:SCODCONTA ,  :SCODSUBCONTA ,  :SENTSAI, :DATAINI,
>         :DATAFIM,     :COMPENSADO , :EMP ,  :NUM_MESES, :CONTROLE);
>    END
>    CONTADOR = CONTADOR + 1;
>  END
> END
>


--------------------------------------------------------------------------------


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: 
http://search.gmane.org/search.php?group=firebase 





Mais detalhes sobre a lista de discussão lista