[firebase-br] Problemas com Procedures.

Listas e Foruns lista.forum em gmail.com
Dom Abr 13 22:16:46 -03 2008


Olá colegas, estou com um problema na execução de uma procedure e gostaria
da ajuda de vcs.

O que esta ocorrendo é que não consigo retornar todos os dados de minha
tabela. Segue abaixo o código que estou usando para retornar os dados.

CREATE OR ALTER PROCEDURE SP_CONTARECEBER_DADOS_BAIXA_REL (
    empresa integer,
    datainicial date,
    datafinal date)
returns (
    descricao varchar(50),
    documento varchar(20),
    vencimento date,
    valor double precision,
    codigo integer,
    valorrecebido double precision,
    cliente varchar(60))
as
declare variable descricao1 varchar(50);
declare variable documento1 varchar(20);
declare variable vencimento1 date;
declare variable valor1 double precision;
declare variable codigo1 integer;
declare variable valorrecebido1 double precision;
declare variable cliente1 varchar(60);
begin
    for
        select
            contas_receber.intcontareceber_codigo,
            contas_receber.strcontareceber_descricao,
            contas_receber.strcontareceber_documento,
            contas_receber.dtmcontareceber_vencimento,
            contas_receber.dblcontareceber_valor,
            cliente.strcliente_nomefantasia 
        from
            contas_receber
            inner join cliente on contas_receber.intcliente_codigo =
cliente.intcliente_codigo 
        where
            contas_receber.intempresa_codigo = :empresa
            AND
            contas_receber.dtmcontareceber_vencimento between :datainicial
and :datafinal
    into
        codigo1,
        descricao1,
        documento1,
        vencimento1,
        valor1,
        cliente1
    do
        BEGIN
            execute procedure sp_conta_valorRECEBIDO (:codigo1)
returning_values :valorRECEBIDO1;
            if (valorRECEBIDO1 <> valor1) then
                begin
                    codigo = codigo1;
                    descricao = descricao1;
                    documento = documento1;
                    vencimento = vencimento1;
                    valor = valor1 - valorRECEBIDO1;
                    cliente = Cliente1;
                end
            /*suspend;*/ (1)
        END
    /*suspend;*/ (2)
End


Se uso o (1) a função só me retorna os dados da 1ª linha. E uso o (2) a
função só me retorna os dados da 2ª linha.

Espero contar com a ajuda de vcs para resolver este problema.

Grato por todos

Alessandro





Mais detalhes sobre a lista de discussão lista