Problemas com While not Eof ao atualizar tabela
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!
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
Curtidas 0
Respostas
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
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.
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
15/10/2004
Coloque ai seu código pra gente dar uma olhada.
GOSTEI 0
Ricna
15/10/2004
coloque a rotina executada para podermos ajudar
GOSTEI 0
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
15/10/2004
Colega,
Coloque um [b:38f237159e]Post [/b:38f237159e]antes do [b:38f237159e]Next[/b:38f237159e].
Coloque um [b:38f237159e]Post [/b:38f237159e]antes do [b:38f237159e]Next[/b:38f237159e].
GOSTEI 0
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´?
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