[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