[firebase-br] SP

Regis Sebastiani regisls em gmail.com
Qui Mar 2 13:25:38 -03 2006


Lembro que no SQL Server tem o Cursor, mas no Firebird...


Em 26/02/06, Magno <magnoscosta em bol.com.br> escreveu:
>
> Amigos listeiros...
>
> antes eu tinha uma rotina em delphi assim:
>
> Qry.First;
> While not Qry.Eof Do
> Begin
>   Proc_Rat.Params[0].AsFloat := QryHA.AsFloat;
>   Proc_Rat.Params[1].AsInteger := QryCod_Rateio.AsInteger;
>   Proc_Rat.Params[2].AsInteger := QryCod_Interno.AsInteger;
>   Proc_Rat.ExecProc;
>   Qry.next;
> end;
>
> onte eu tinha q passar basicamente o codigo do registro atual, um valor do
> registro atual, e outro codigo no caso Cod_Rateio.
>
> para que eu fizesse rodar a procedure:
> begin
> Select Sum(Ha) from ctrati where Cod_Rateio = :P_CodRat
>   and Especial = 0 into :P_Soma;
> select Sum(Ha) from ctrati Where Cod_Rateio = :P_CodRat
>   into :P_Soma2;
> pPercentagem = (:PNEWHA*100)/:P_Soma;
> pPercentagem2 = (:PNEWHA*100)/:P_Soma2;
>
> /* Atualizar as percentagens */
> Update CTRATI Set Perc_Geral = :pPercentagem Where Cod_Interno =
> :P_CodInterno
>   and Especial = 0;
> Update CTRATI Set Perc_Esp = :pPercentagem2 Where Cod_Interno =
> :P_CodInterno;
> suspend;
> end
>
> Porem to querendo juntar isso ai..
>
> ou seja....
>
> Passar o codigo geral.....
> e a SP selecionar todos os registro com akele codigo, fazer a soma e
> atualizar cada registro, sem q eu precise fazer via delphi passar por cada
> registro..
> Sequencia:
> Somar o campo HA de todos os registro com o codigo informado;
> Pra cada registro pegar o campo HA e gerar a porcentagem representativa
> sobre o total somado (pPercentagem = (HA*100)/:P_Soma;)
> e atualizar o campo de cada registro.
>
> Deu pra entender?
>
> Vlw
> Magno
>
> ______________________________________________
> 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