Fórum Erro na Stored Procedure #37648
27/07/2003
0
Boa noite, colegas do fórum.
Estou tentando compilar uma stored procedure, mas não sei mais onde
está o erro. O interbase retorna a mensagem: Unknown column.
Alguém saberia me dizer onde está a ´mancada´ ?
Segue ela (foi baixada da revista ClubeDelphi 39, mas do jeito que ela foi
baixada, sem mexer em nada, também não está passando):
SET AUTODDL OFF;
SET TERM ^ ;
CREATE PROCEDURE FLUXOCAIXA (DATA_INICIO DATE, DATA_FIM DATE)
RETURNS (DATATRAN DATE, HIST VARCHAR(30), VLR NUMERIC(9,2), TIPO CHAR(1))
AS
DECLARE VARIABLE SALDO_ANT_DEBITO NUMERIC(9,2);
DECLARE VARIABLE SALDO_ANT_CREDITO NUMERIC(9,2);
DECLARE VARIABLE SALDO_FINAL NUMERIC(9,2);
BEGIN
SELECT SUM(VALOR) FROM APAGAR WHERE (DATA < :DATA_INICIO) INTO:SALDO_ANT_DEBITO;
SELECT SUM(VALOR) FROM ARECEBER WHERE (DATA < :DATA_INICIO) INTO:SALDO_ANT_CREDITO;
IF (SALDO_ANT_DEBITO IS NULL) THEN
SALDO_ANT_DEBITO = 0.00;
IF (SALDO_ANT_CREDITO IS NULL) THEN
SALDO_ANT_CREDITO = 0.00;
DATATRAN = DATA_INICIO - 1;
HIST = ´Saldo Anterior´;
VLR = SALDO_ANT_CREDITO - SALDO_ANT_DEBITO;
SALDO_FINAL = VLR;
IF (VLR < 0) THEN
BEGIN
VLR = VLR * -1;
TIPO = ´D´;
END
ELSE
TIPO = ´C´;
SUSPEND;
TIPO = ´D´;
FOR SELECT DATA, HISTORICO, VALOR FROM APAGAR WHERE (DATA BETWEEN :DATA_INICIO AND :DATA_FIM) INTO:DATATRAN,:HIST,:VLR
BEGIN
SALDO_FINAL = SALDO_FINAL - VLR;
SUSPEND;
END
TIPO = ´C´;
FOR SELECT DATA, HISTORICO, VALOR FROM ARECEBER WHERE (DATA BETWEEN :DATA_INICIO AND :DATA_FIM) INTO:DATATRAN,:HIST,:VLR
DO
BEGIN
SALDO_FINAL = SALDO_FINAL + VLR;
SUSPEND;
END
DATATRAN = :DATA_FIM;
HIST = ´Saldo Final´;
VLR = SALDO_FINAL;
if (VLR < 0) then
TIPO = ´D´
ELSE
TIPO = ´C´;
SUSPEND;
END
^
SET TERM ; ^
SET AUTODDL OFF;
Obrigadão e abraço.
Glauco :shock:
Estou tentando compilar uma stored procedure, mas não sei mais onde
está o erro. O interbase retorna a mensagem: Unknown column.
Alguém saberia me dizer onde está a ´mancada´ ?
Segue ela (foi baixada da revista ClubeDelphi 39, mas do jeito que ela foi
baixada, sem mexer em nada, também não está passando):
SET AUTODDL OFF;
SET TERM ^ ;
CREATE PROCEDURE FLUXOCAIXA (DATA_INICIO DATE, DATA_FIM DATE)
RETURNS (DATATRAN DATE, HIST VARCHAR(30), VLR NUMERIC(9,2), TIPO CHAR(1))
AS
DECLARE VARIABLE SALDO_ANT_DEBITO NUMERIC(9,2);
DECLARE VARIABLE SALDO_ANT_CREDITO NUMERIC(9,2);
DECLARE VARIABLE SALDO_FINAL NUMERIC(9,2);
BEGIN
SELECT SUM(VALOR) FROM APAGAR WHERE (DATA < :DATA_INICIO) INTO:SALDO_ANT_DEBITO;
SELECT SUM(VALOR) FROM ARECEBER WHERE (DATA < :DATA_INICIO) INTO:SALDO_ANT_CREDITO;
IF (SALDO_ANT_DEBITO IS NULL) THEN
SALDO_ANT_DEBITO = 0.00;
IF (SALDO_ANT_CREDITO IS NULL) THEN
SALDO_ANT_CREDITO = 0.00;
DATATRAN = DATA_INICIO - 1;
HIST = ´Saldo Anterior´;
VLR = SALDO_ANT_CREDITO - SALDO_ANT_DEBITO;
SALDO_FINAL = VLR;
IF (VLR < 0) THEN
BEGIN
VLR = VLR * -1;
TIPO = ´D´;
END
ELSE
TIPO = ´C´;
SUSPEND;
TIPO = ´D´;
FOR SELECT DATA, HISTORICO, VALOR FROM APAGAR WHERE (DATA BETWEEN :DATA_INICIO AND :DATA_FIM) INTO:DATATRAN,:HIST,:VLR
BEGIN
SALDO_FINAL = SALDO_FINAL - VLR;
SUSPEND;
END
TIPO = ´C´;
FOR SELECT DATA, HISTORICO, VALOR FROM ARECEBER WHERE (DATA BETWEEN :DATA_INICIO AND :DATA_FIM) INTO:DATATRAN,:HIST,:VLR
DO
BEGIN
SALDO_FINAL = SALDO_FINAL + VLR;
SUSPEND;
END
DATATRAN = :DATA_FIM;
HIST = ´Saldo Final´;
VLR = SALDO_FINAL;
if (VLR < 0) then
TIPO = ´D´
ELSE
TIPO = ´C´;
SUSPEND;
END
^
SET TERM ; ^
SET AUTODDL OFF;
Obrigadão e abraço.
Glauco :shock:
Glauco Filoco
Curtir tópico
+ 0
Responder
Posts
28/07/2003
Afarias
Aparentemente nenhum erro, entretanto, seria preciso ter o DDL das tabelas envolvidas.
E, qual a mensagem completa do Erro??
T+
E, qual a mensagem completa do Erro??
T+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)