[firebase-br] EXECUTE STATEMENT

Pedro news.pj em gmail.com
Qua Jun 7 14:33:57 -03 2006


Qual o motivo de listar os campos em uma variável varchar? Experimente
colocar os campos direto no select.

for
   select t16.numero,t16.data...
   FROM t16_contas_a_receber T16
   WHERE  t16.valor>0
   into :...
do
  suspend;

Também não precisou da VAR_DTPAGTO.

At,
Pedro.

Em 07/06/06, Loerci Cardoso Groppo <gropinf em terra.com.br> escreveu:
>
> Ola a todos,
>
> Criei uma SP com o comando FOR EXECUTE STATEMENT, porem funcionou enquanto
> usava no select ate tres fields a partir do quarto comecou a dar erro,
> sendo
> q a select q pretendo montar tem vinte campos e ira ficar assim:
> Sendo q ainda preciso ajustar a clausula where.
>
>
> CREATE PROCEDURE Q_CTA_RECEBERTESTE
> RETURNS (
>     PEDIDO_ANOMES CHAR(6),
>     PEDIDO_FILIAL SMALLINT,
>     PEDIDO_ORDEM SMALLINT,
>     NOME_VENDEDOR CHAR(40),
>     COD_VENDEDOR SMALLINT,
>     NUMERO INTEGER,
>     DATA DATE,
>     EMISSAO DATE,
>     VENCTO DATE,
>     DT_PAGTO DATE,
>     COD_TP_PAGTO VARCHAR(4),
>     TP_PAGTO VARCHAR(15),
>     COD_BANCO VARCHAR(5),
>     VALOR NUMERIC(15,2),
>     COD_CLIENTE INTEGER,
>     OBS VARCHAR(200),
>     BAIXA DATE,
>     RESP_BAIXA VARCHAR(20),
>     CHEGOU VARCHAR(1),
>     PARCELA SMALLINT,
>     VALOR_PAGO NUMERIC(15,2),
>     FILIAL SMALLINT,
>     NBLOQ NUMERIC(12,1),
>     DAC CHAR(1),
>     PAGO VARCHAR(1),
>     RAZAO VARCHAR(60),
>     ENDERECO VARCHAR(50),
>     BAIRRO VARCHAR(20),
>     CIDADE VARCHAR(25),
>     OBS_REST VARCHAR(100),
>     TELEFONE VARCHAR(30),
>     JUROS NUMERIC(15,2),
>     TOTAL NUMERIC(15,2),
>     PEDIDO_NUMERO INTEGER,
>     DIAS_ATRZ INTEGER,
>     NUM_DOC VARCHAR(10),
>     NF INTEGER,
>     NCHEQ VARCHAR(14))
> AS
> DECLARE VARIABLE WFIELDS1 VARCHAR(1000);
> DECLARE VARIABLE VAR_DTPAGTO DATE;
> BEGIN
>
> WFIELDS1='t16.numero,t16.data,t16.emissao,t16.vencimento,t16.pagto,
> t16.cod_t
> ppagto,t16.cod_banco,t16.valor,';
>
> WFIELDS1=WFIELDS1||'COALESCE(t16.cod_cliente,0),t16.obs,t16.baixa,
> t16.resp_b
> aixa,t16.chegou,t16.PARCELA,';
>
> WFIELDS1=WFIELDS1||'t16.VALOR_PAGO,t16.filial,T16.NBLOQ,t16.dac,t16.pago
> ,T16
> .obs_rest,';
>
> WFIELDS1=WFIELDS1||'T16.pedido_anomes,T16.pedido_filial,T16.PEDIDO_NUMERO
> ,t1
> 6.pedido_ordem,T16.NUM_DOC';
>   FOR EXECUTE STATEMENT
>   'SELECT '||:WFIELDS1||' FROM t16_contas_a_receber T16 WHERE  t16.valor
> >0'
>     INTO
>     :NUMERO,
>     :DATA,
>     :EMISSAO,
>     :VENCTO,
>     :DT_PAGTO,
>     :COD_TP_PAGTO,
>     :COD_BANCO,
>     :VALOR,
>     :COD_CLIENTE,
>     :obs,
>     :BAIXA,
>     :resp_baixa,
>     :CHEGOU,
>     :PARCELA,
>     :VALOR_PAGO,
>     :FILIAL,
>     :NBLOQ,
>     :DAC,
>     :PAGO,
>     :OBS_REST,
>     :pedido_anomes,
>     :pedido_filial,
>     :PEDIDO_NUMERO,
>     :pedido_ordem,
>     :NUM_DOC
>
>    DO
>    BEGIN
>      SUSPEND;
>    END
> END
>
>
> Aguardo qq ajuda...
>
> Ate +
>
> Groppo
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista