[firebase-br] Ajuda SP

Eliomar eliomar em promediconet.com.br
Sex Abr 15 08:38:00 -03 2005


Esta faltando fechar um parente....
no primeiro select e  a variavel SCC nunca 
havia sido usada...


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 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

Agradecido.
Eliomar,
ICQ - 167715482
Soft-Data Softwares Administrativos
hptt://www.promediconet.com.br


------------- Segue mensagem original! -------------

De: "Michelle - House" <michelle em housesoft.com.br>
Data: Thu, 14 Apr 2005 19:09:04 -0300
Para: "Lista firebase" <lista em firebase.com.br>
Assunto: [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






Mais detalhes sobre a lista de discussão lista