Fórum Executando uma Procedure #44652

03/06/2004

0

Eu criei esta procedure e quando eu executo não me retorna nenhum valor o que devo fazer? Executo desta maneira EXECUTE PROCEDURE ALUNOS_MENSALIDADES 3484, 2004, 1, 2. Todos os dados que eu passo como parâmetro existem, deveria me retorna 4 registros de se fosse um select somente, e na procedure me retorna um campo nulo sem nome.

SET TERM ^ ;
CREATE PROCEDURE ALUNOS_MENSALIDADES(MATRICULA INTEGER, ANOLETIVO INTEGER, PERIODOLETIVO INTEGER, SITMENSALIDADE INTEGER)
RETURNS (COD_MATRICULA INTEGER, NOME_ALUNO VARCHAR(50), PARCELA INTEGER, DT_VENCIMENTO DATE, DT_PAGAMENTO DATE,
VALOR_COBRADO FLOAT, VALOR_PAGO FLOAT)
AS
BEGIN
FOR
SELECT M.COD_MATRICULA, A.NOME_ALUNO, MEN.PARCELA, MEN.DT_VENCIMENTO, MEN.DT_PAGAMENTO, MEN.VALOR_COBRADO,
MEN.VALOR_PAGO
FROM ALUNOS A, MATRICULAS M, REMATRICULAS RM, MENSALIDADES MEN
WHERE A.COD_ALUNO = M.COD_ALUNO
AND M.COD_MATRICULA = RM.COD_MATRICULA
AND M.COD_MATRICULA = MEN.COD_MATRICULA
AND RM.COD_MATRICULA = MEN.COD_MATRICULA
AND RM.ANO_LETIVO = MEN.ANO_LET
AND RM.PERIODO_LETIVO = MEN.PERIODO_LET
AND RM.ANO_LETIVO = :ANOLETIVO
AND RM.PERIODO_LETIVO = :PERIODOLETIVO
AND MEN.SIT_MENSALIDADE = :SITMENSALIDADE
AND RM.COD_MATRICULA = :MATRICULA

INTO :COD_MATRICULA, :NOME_ALUNO, :PARCELA, :DT_VENCIMENTO, :DT_PAGAMENTO,:VALOR_COBRADO, :VALOR_PAGO
DO
SUSPEND;
END ^
SET TERM ; ^


Fabio Colli

Fabio Colli

Responder

Posts

03/06/2004

Afarias

select * from ALUNOS_MENSALIDADES ( 3484, 2004, 1, 2 );



T+


Responder

Gostei + 0

03/06/2004

Fabio Colli

Valeu cara muito obrigado, mas o help do interbase me diz que eu devo executar com o comando EXECUTE.


Responder

Gostei + 0

03/06/2004

Afarias

|Valeu cara muito obrigado, mas o help do interbase me diz que eu devo
|executar com o comando EXECUTE.

No INTERBASE (e no FB) existem 2 tipos de procedimentos (PROCEDURES) ... os EXECUTÁVEIS e os SELECIONÁVEIS

os executáveis vc executa com EXECUTE PROCEDURE

enquanto os SELECIONÁVEIS vc usa como se fosse uma tabela, usando SELECT

os SELECIONÁVEIS são procedimentos q retornam um conjunto de registros utilizando o comando SUSPEND em seu interior.



T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar