[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