[firebase-br] RES: Laço de repetição

Jose Aparecido da Silva joseasilva em bol.com.br
Ter Mar 10 16:21:20 -03 2009


É possível usar um script. Dá uma olhada em execute block se não me falha a memoria

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em nome de Juvencio Leite
Enviada em: terça-feira, 10 de março de 2009 15:41
Para: FireBase
Assunto: Re: [firebase-br] Laço de repetição

Na verdade eu gostaria de usar um Script "Solto" sem estar dentro de
uma procedure, tem como ? Se não tiver ok, valeu a ajuda,  eu
agradeço.

2009/3/10 Isael Faria Junior <isael em stetika.com.br>:
> vc esta declarando antes do begin  e depois do AS ?
>
> Segue exemplo em uma procedure :
>
> CREATE PROCEDURE SP_GERA_LIBERACAO (
>   COD_PROPOSTA DOUBLE PRECISION,
>   COD_REVISAO DOUBLE PRECISION)
> AS
> DECLARE VARIABLE DATA_LIMITE DATE;
> DECLARE VARIABLE ID_PATRIMONIO_SIMPLES INTEGER;
> DECLARE VARIABLE ID_PRODUTO INTEGER;
> DECLARE VARIABLE SIT_QTD VARCHAR(1);
> DECLARE VARIABLE I INTEGER;
> DECLARE VARIABLE QTD DOUBLE PRECISION;
> DECLARE VARIABLE PRCUSTO DOUBLE PRECISION;
> DECLARE VARIABLE DESCRICAO VARCHAR(50);
> DECLARE VARIABLE SIT_TIPO VARCHAR(1);
> DECLARE VARIABLE VAL_UNIT DOUBLE PRECISION;
> begin
>  /* Procedure Text */
>  FOR SELECT A.descricao, A.qtd_item_locacao,A.id_patrimonio_simples,
>      a.val_unitario
>  FROM ite_patr_prop A WHERE A.cod_proposta = :cod_proposta AND
>  A.cod_revisao = :cod_revisao INTO :descricao,:qtd,:id_patrimonio_simples,
>  :val_unit DO
>  BEGIN
>   I = 0;
>   I = 0;
>
>   SELECT P.dat_limite FROM PROPOSTA P WHERE P.cod_proposta = :cod_proposta
> AND
>       P.cod_revisao = :cod_revisao INTO :data_limite;
>
>   SELECT B.qtd,B.sit_tipo,b.id_produto FROM patrimonio_simples B WHERE
>       B.id_patrimonio_simples = :id_patrimonio_simples
>       into :sit_qtd,:sit_tipo,:id_produto;
>   if (:sit_qtd IS NULL) then
>     sit_qtd = 'N';
>
>  if (sit_tipo = '2') then
>  begin
>   if (:sit_qtd = 'S') then
>   BEGIN
>     WHILE (I<:qtd) DO
>     BEGIN
>       INSERT INTO
> ITE_LIB_PROP(COD_PROPOSTA,COD_REVISAO,DESCRICAO,qtd,id_patrimonio_simples,DATA_LIMITE)
>
> VALUES(:cod_proposta,:cod_revisao,:descricao,1,:id_patrimonio_simples,:data_limite);
>       I = I+1;
>     END
>   END
>   if (:sit_qtd = 'N') then
>   BEGIN
>       INSERT INTO
> ITE_LIB_PROP(COD_PROPOSTA,COD_REVISAO,DESCRICAO,qtd,id_patrimonio_simples,DATA_LIMITE)
>
> VALUES(:cod_proposta,:cod_revisao,:descricao,:qtd,:id_patrimonio_simples,:data_limite);
>   END
>  END
>  if (sit_tipo = '1' ) then
>  begin
>       SELECT DESCRICAO,PRCUSTO FROM PRODUTOS WHERE ID_PRODUTO = :id_produto
> INTO :descricao,:prcusto;
>       INSERT INTO
> ITE_LIB_PRODUTO(COD_PROPOSTA,COD_REVISAO,id_produto,DESCRICAO,
>           qtd,VAL_UNITARIO,VAL_TOTAL,VALOR_UNIT_CONTR)
>       VALUES(:cod_proposta,:cod_revisao,:id_produto,:descricao,
>           :qtd,:prcusto,(:qtd*:prcusto),:val_unit);
>  end
>  END
>  suspend;
> end
>
> Juvencio Leite escreveu:
>>
>> ISSO NO FB 1.5 ? obs: como eu declaro variavel? tentei: DECLARE
>> VARIABLE codigo integer; mas não funcionou.
>>
>> 2009/3/10 Isael Faria Junior <isael em stetika.com.br>:
>>
>>>
>>> Para while :
>>> while (v1 < v2) do
>>> begin
>>>
>>> end;
>>>
>>> Para For
>>>
>>> for select campo from tabela into : parametro do
>>> begin
>>>
>>> end;
>>>
>>>
>>> Juvencio Leite escreveu:
>>>
>>>>
>>>> Boa tarde, galera, estou convertendo um script de sql server para
>>>> firebird e gostaria de saber como eu faço um laço de repetição no
>>>> firebird?
>>>>
>>>>
>>>>
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>>>
>>
>>
>>
>>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
====================================
Desenvolvimento para aplicativos comerciais
com eficiência e segurança.
'A Análise determina a necessidade.
Se nunca andou de Helicoptero,
isso não significa que
o mesmo não sirva para nada.'
خوفنسيو يته دا سيلفا

===================================

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Nenhum vírus encontrado nessa mensagem recebida.
Verificado por AVG - www.avgbrasil.com.br 
Versão: 8.0.237 / Banco de dados de vírus: 270.11.9/1993 - Data de Lançamento: 03/10/09 07:19:00





Mais detalhes sobre a lista de discussão lista