Problemas com While not Eof ao atualizar tabela

Delphi

15/10/2004

E aí galera,
Estou com dificuldades para atualizar todos os dados de determinado campo de uma tabela,como ao se fazer um reajuste de preços ,por exemplo.
Fiz um [i:8d30a43cb0]´while not SqlClientedataset1.eof ´e [/i:8d30a43cb0]no ultimo registro ele atualiza duas vezes o mesmo campo.
Já sei que o Eof é uma posição que vem depois do last,mas mesmo pesquisando aqui no forum não consegui chegar a uma solução.
Espero a ajuda de vocês.
FLW!


Milk

Milk

Curtidas 0

Respostas

Ricna

Ricna

15/10/2004

Fora ele atualizar 2 vezes o ultimo registro existe um problema, e essa atualização prejudica de alguma forma o sistema(fora o tempo x2)?


GOSTEI 0
Milk

Milk

15/10/2004

Prejudica,pois o campo que eu estou reajustando é onde ficam armazenadas o valor da hora de cada funcionario.
Esta rotina atualiza todos os valores com base num percentual fornecido pelo usuario.
Então se o ultimo registro tinha o valor R$2,00 , e o percentual de aumento foi de 50¬,ele fica com R$4,00 em vez de ficar com R$ 3,00.
Não sei se consegui me explicar,mas estou precisando muito de ajuda.


GOSTEI 0
Gandalf.nho

Gandalf.nho

15/10/2004

Coloque ai seu código pra gente dar uma olhada.


GOSTEI 0
Ricna

Ricna

15/10/2004

coloque a rotina executada para podermos ajudar


GOSTEI 0
Milk

Milk

15/10/2004

Aí esta então:
var
    Perc:Integer;
    Valor:Currency;

if RdReajuste.ItemIndex = 0
then begin
            DmPonto.CdsNivel.First;
            while not DmPonto.CdsNivel.eof  do
            begin
                  DmPonto.CdsNivel.Edit;
                  Valor:=DmPonto.CdsNivelNVVALORHORA.AsCurrency;
                 DmPonto.CdsNivelNVVALORHORA.AsCurrency:=
                      ((perc/100)*Valor)+Valor;
                 DmPonto.CdsNivel.Next;
            end;



GOSTEI 0
Aroldo Zanela

Aroldo Zanela

15/10/2004

Colega,

Coloque um [b:38f237159e]Post [/b:38f237159e]antes do [b:38f237159e]Next[/b:38f237159e].


GOSTEI 0
Milk

Milk

15/10/2004

Valeu zanella,
Funciounou,agora só tenho uma duvida:
Posso iniciar uma transação ao final de todos ao reajustes e ´comitar´tudo?
Coloco aplyupdates e depois ´comito´?


GOSTEI 0
POSTAR