[firebase-br] Resolvido "FOR EXECUTE STATEMENT"

dvdmengarda em hotmail.com dvdmengarda em hotmail.com
Ter Mar 14 07:28:35 -03 2006


Cantu,

Quero agradecer pela sua solução ao meu problema. Agora está funcionando 
corretamente. Você tinha razão, era uma questão de "Aspas".

Muito obrigado.

David

----- Original Message ----- 
From: "Carlos H. Cantu (TeamFB)" <listas em warmboot.com.br>
To: <dvdmengarda em hotmail.com>
Sent: Monday, March 13, 2006 8:56 PM
Subject: Re: [firebase-br] Erro em FOR EXECUTE STATEMENT (Opa!)


> v_script = 'select cast(t.datavencimento as date), t.numerotitulo,
> t.valorparcela from ctarec t where (t.codigoorigem = ' || :codigo_origem 
> ||
> ' and t.dataemissao = ''' || v_data || ''')';
>
>
> []s
> Cantu (Membro do TeamFB - FireBase)
> http://www.warmboot.com.br
> FireBase - http://www.FireBase.com.br
>
> dhc> Cantu,
>
> dhc> Conforme você observou fiz a alteração no sql e agora sumiu aquela 
> mensagem
> dhc> de erro, porém ainda assim não consigo executar a SP. A variável para 
> o FOR
> dhc> EXECUTE STATEMENT ficou assim:
>
> dhc> v_script = 'select cast(t.datavencimento as date), t.numerotitulo,
> dhc> t.valorparcela from ctarec t where (t.codigoorigem = ' || 
> :codigo_origem ||
> dhc> ' and t.dataemissao = ' || "v_data" || ')';
>
>
>
> dhc> Se eu elimino [ ' and t.dataemissao = ' || "v_data" ||  ] da variável
> dhc> funciona normalmente. Com a parte da data apresenta a seguinte 
> mensagem de
> dhc> erro pelo ibexpert:
>
>
>
> dhc> 'Invalid token.
>
> dhc> Dynamic SQL Error.
>
> dhc> SQL error code = -104.
>
> dhc> Token unknown - line 1, char 142.
>
> dhc> 00.'
>
>
>
> dhc> O campo dataemissao e o parametro v_data são timestamp e estou usando 
> aspas
> dhc> duplas para v_data. Fiz o mesmo teste sem o uso do alias T para os 
> campos e
> dhc> não muda nada. Estou usando Firebird 1.5.3.
>
>
>
> dhc> Muito obrigado.
>
>
>
>
>
> dhc> David
>
>
>
>
>
> dhc> ----- Original Message ----- 
> dhc> From: "Carlos H. Cantu (TeamFB)" <listas em warmboot.com.br>
> dhc> To: "FireBase" <lista em firebase.com.br>
> dhc> Sent: Monday, March 13, 2006 5:52 PM
> dhc> Subject: Re: [firebase-br] Erro em FOR EXECUTE STATEMENT (Opa!)
>
>
> dhc> Olhe o SQL que está sendo gerado.
>
> dhc> Datas tem que estar sempre entre '', e no seu caso, não estão.
>
> dhc> []s
> dhc> Cantu (Membro do TeamFB - FireBase)
> dhc> http://www.warmboot.com.br
> dhc> FireBase - http://www.FireBase.com.br
>
> dhc>> Samuel,
>
> dhc>> É exatamente isso que está ocorrendo por aqui.
>
> dhc>> Agora, como é que posso deixar esse script de forma que resolva essa
> dhc>> questão?
>
> dhc>> Grato.
>
>
> dhc>> David
>
>
> dhc>> ----- Original Message ----- 
> dhc>> From: "samuel ferreira" <samuel.peres.ferreira em gmail.com>
> dhc>> To: "FireBase" <lista em firebase.com.br>
> dhc>> Sent: Monday, March 13, 2006 1:42 PM
> dhc>> Subject: Re: [firebase-br] Erro em FOR EXECUTE STATEMENT (Opa!)
>
>
> dhc>> ola
>
> dhc>> ja passei por isso. era uma variavel numerica q eu estava 
> concatenando
> dhc> com
> dhc>> string.
> dhc>> vc esta unindo strings com variaveis tipo data no ' v_script = '
>
> dhc>> eu contornei o erro passando tudo pra string
>
>
> dhc>> samuel
>
>
>
> dhc>> Em 13/03/06, dvdmengarda em hotmail.com <dvdmengarda em hotmail.com>
> dhc> 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
>>>>
> dhc>> ______________________________________________
> dhc>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> dhc>> Para editar sua configuração na lista, use o endereço
> dhc>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> dhc>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> dhc>> ______________________________________________
> dhc>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> dhc>> Para editar sua configuração na lista, use o endereço
> dhc>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> dhc>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> dhc> ______________________________________________
> dhc> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> dhc> Para editar sua configuração na lista, use o endereço
> dhc> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> dhc> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> 




Mais detalhes sobre a lista de discussão lista