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

Andrei Luís compuvale.software em gmail.com
Ter Mar 10 16:40:40 -03 2009


Execute block está disponível a partir da versão 2.1 do FB. No 1.5 vais ter
que montar um SP mesmo.

[]
Andrei

2009/3/10 Jose Aparecido da Silva <joseasilva em bol.com.br>

> É 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.'
> خوفنسيو يته دا سيلفا
>



Mais detalhes sobre a lista de discussão lista