[firebase-br] Erro em FOR EXECUTE STATEMENT (Opa!)

dvdmengarda em hotmail.com dvdmengarda em hotmail.com
Seg Mar 13 15:52:51 -03 2006


Samuel,

É exatamente isso que está ocorrendo por aqui.

Agora, como é que posso deixar esse script de forma que resolva essa 
questão?

Grato.


David


----- Original Message ----- 
From: "samuel ferreira" <samuel.peres.ferreira em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, March 13, 2006 1:42 PM
Subject: Re: [firebase-br] Erro em FOR EXECUTE STATEMENT (Opa!)


ola

ja passei por isso. era uma variavel numerica q eu estava concatenando com
string.
vc esta unindo strings com variaveis tipo data no ' v_script = '

eu contornei o erro passando tudo pra string


samuel



Em 13/03/06, dvdmengarda em hotmail.com <dvdmengarda em hotmail.com> escreveu:
>
> Desculpem-me, segue a mensagem correta:
>
>
> Criei a SP abaixo pelo ibexpert sem qualquer problema na compilação.
> Quando executo a SP, o ibexpert reporta o seguinte erro:
>
> 'expression evaluation not supported
> .
> expression evaluation not supported.'
>
> Alterando a procedure e fazendo a utilização de FOR SELECT ... DO com o
> mesmo script do anterior a procedure executa normalmente. Existe alguma
> limitação para o "for execute statement"?
>
> Grato pela atenção.
>
>
> David
>
>
> *****************************************************************************************************************************************
> /* usando "for execute statement" /*
> create procedure geralcto(tipo_venda varchar(2), data_emissao date)
> returns (numero_lct integer, data_lct date, debito varchar(10), credito
> varchar(10), valor numeric(10, 2))
> as
> declare variable v_script varchar(512);
> begin
> data_lct = data_emissao;
> if (tipo_venda = 1) then
>     v_script = 'select contacliente, contavendas, valorduplicata from
> parcelas where (dataemissao = ' || :data_emissao || ')';
> else
>     v_script = 'select contacliente, contavendas, valortitulo from vendas
> where (dataemissao = ' || :data_emissao || ' and cancelamento = 1)';
> for execute statement
>    v_script
>    into
>      :debito,
>      :credito,
>      :valor
> do
>    begin
>      numero_lct = numero_lct + 1;
>      suspend;
>    end
> end;
>
>
> *****************************************************************************************************************************************
> /* usando "for select ... do" /*
> create procedure geralcto(tipo_venda varchar(2), data_emissao date)
> returns (numero_lct integer, data_lct date, debito varchar(10), credito
> varchar(10), valor numeric(10, 2))
> as
> begin
> data_lct = data_emissao;
> if (tipo_venda = 1) then
>    for select
>      contacliente, contavendas, valorduplicata from parcelas where
> (dataemissao = :data_emissao)
>      into
>        :debito,
>        :credito,
>        :valor
>    do
>      begin
>        numero_lct = numero_lct + 1;
>        suspend;
>      end
>
> else
>    for select
>      contacliente, contavendas, valortitulo from vendas where (dataemissao
> = :data_emissao and cancelamento = 1)
>        into
>        :debito,
>        :credito,
>        :valor
>    do
>      begin
>        numero_lct = numero_lct + 1;
>        suspend;
>      end
> end;
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.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
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.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