[firebase-br] Erro em FOR EXECUTE STATEMENT
Renato Miranda
renato.smiranda em gmail.com
Seg Mar 13 18:33:04 -03 2006
Tudo bem, David ?
Não faltaria um BEGIN por aí ?
if (tipo_venda = 1) then
BEGIN
for select
contacliente, contavendas, valorduplicata from parcelas where
(dataemissao = ' || :data_emissao || ')'
into
:debito,
...
END ELSE
BEGIN
for select
contacliente, contavendas, valortitulo from vendas where (dataemissao =
' || :data_emissao || ' and cancelamento = 1)'
into
:debito,
:credito,
:valor
...
END
Abraços,
RMiranda
Em 13/03/06, dvdmengarda em hotmail.com <dvdmengarda em hotmail.com> escreveu:
>
> 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
>
--
Abraços,
RMiranda
Mais detalhes sobre a lista de discussão lista