[firebase-br] [Off] For Select com Macro-substituição

Andrei Luís compuvale.software em gmail.com
Seg Abr 14 15:36:22 -03 2008


Sim, você pode fazer isso usando execute statement, olha o monstrinho aí abaixo:

wSQL1 ='Insert into Financeiro ' ||
       ' (REGISTRO_ID, TIPO, TIPO2, COBRADOR, CADASTRADO, ' ||
       ' CEDENTE_ID, '||
       ' CEDENTE_NOME, ' ||
       ' HISTORICO, '||
       ' DOCUMENTO, '||
       ' DATAEMISSAO, ' ||
       ' DATAVENCIMENTO, '||
       ' VALORPROJETADO, DATAPAGAMENTO, VALORREALIZADO, QUITADO,
QUITADO_DATA, CANCELADO, '||
       ' OBS, CANCELADO_DATA, NOTAFISCAL_ID, PARCELA, '||
       ' REPRESENTANTE_ID, COMISSAO_PORCENTAGEM, COMISSAO_VALOR,
COMISSAO_QUITADO, COMISSAO_DATAPAGAMENTO)' ||
       ' Values(0, ' || '''RF''' || ', null, null,' || '''T''' ||
                               ', '|| :wcliente_id ||
                                ',(Select nome from agenda where
agenda.registro_id = ' || :wcliente_id || ')'
         || ',' ||
         '''FATURA   - PARCELA  ' || :x || ' DE ' || :wparcelas || '
REF. NF NR ' || :wnrnf || ''',' ||
         '''' || :wnrfatura || ''','||
         ' current_date '||
         ', ''' || Cast(:wdataven as Varchar(10))|| ''',' ||
         :wfatura || ', null, 0, ' || '''F''' || ', null, ' || '''F''' ||
         ', null, null, '||:wnotafiscal_id ||', '  || :x ||
         ', ' || :wrepresentante_id || ', 0, 0,' || '''F''' || ', null)';

Execute Statement wSQL1;

[]
Andrei

2008/4/14, Humberto S. Reis <hsreisjr em gmail.com>:
> Prezados colegas,
>
>  É possível tornar um for select flexível, passando parâmetros para uma SP,
>  como o exemplo abaixo?
>
>
>   for select P.CODIGO, P.DESCRICAO, p.COD_GRUPOPRODUTO, G.DESCRICAO,
>  p.COD_CLASSEPRODUTO,
>              C.DESCRICAO, P.COD_UNIDADE_VENDA, S.CUSTOAQUISICAO
>
>         from PRODUTO P
>         join GRUPOPRODUTO G on (g.CODIGO = p.COD_GRUPOPRODUTO)
>         join CLASSEPRODUTO c on (c.COD_GRUPOPRODUTO = p.COD_GRUPOPRODUTO and
>                            c.CODIGO = p.COD_CLASSEPRODUTO)
>         join SALDO S on (S.COD_LOJA = :ICOD_LOJA and S.COD_PRODUTO =
>  P.CODIGO)
>        where (p.APLICACAO in ('V','A','B')) and (p.COD_GRUPOPRODUTO =
>  :ICOD_GRUPO)
>         into :CCOD_PRODUTO, :CPRODUTO, :CCOD_GRUPOPRODUTO, :CGRUPO,
>              :CCOD_CLASSEPRODUTO, :CCLASSE, :CCOD_UN_SAIDA,
>  :NCUSTO_AQUISICAO do
>   begin
>
>
>
>  Grato,
>
>  Humberto




Mais detalhes sobre a lista de discussão lista