Onde esta o erro desse loop?

Delphi

07/07/2009

Colegas..

Tenho esse loop funcionando 100¬ em um sistema usando o componente IBX(interbase).
Estou migrando para o DBExpress e quando mando rodar esse loop, não esta comitando no banco de dados e não sai do loop.


procedure TFormPadrao1.btn_habilitaTodosClick(Sender: TObject);
begin
if not (cdsCadastro.IsEmpty) then
begin
cdsCadastro.First;
cdsCadastro.DisableControls;
while not cdsCadastro.Eof do
begin
cdsCadastro.Edit;
cdsCadastro.FieldByName(´status´).asstring:= ´S´;
cdsCadastro.FieldByName(´data_hab´).AsDateTime:= date;
cdsCadastro.Post;
cdsCadastro.Next;
end;
cdsCadastro.ApplyUpdates(0);
cdsCadastro.EnableControls;
end;
end;

O que devo mudar?

Grato:
Jose Luiz


Jose Luiz

Jose Luiz

Curtidas 0

Respostas

Danielrsanches

Danielrsanches

07/07/2009

vc trabalha com qual banco de dados ???

pq ao invés desse loop vc não dá um comando SQL ???

tipo:
query.SQL.Text:= ´update CADASTRO set STATUS=:pStatus, DATA_HAB=:pData´;
query.ParamByName(´pStatus´).AsString:= ´S´;
query.ParamByName(´pData´).AsDateTime:= date;
query.ExecSQL;


eu exemplifiquei com uma query, mas vc pode utilizar outros componentes ...


abraços !!!


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

07/07/2009

visto que o commit está fora do loop, não está comitanto PORQUE não sai do loop...

agora uma pergunta: seu cds está com algum índice ?

também tente trocar .AsDateTime por .AsSQLTimeStamp


GOSTEI 0
POSTAR