Fórum Onde esta o erro desse loop? #372074

07/07/2009

0

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

Responder

Posts

08/07/2009

Danielrsanches

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 !!!


Responder

Gostei + 0

08/07/2009

Emerson Nascimento

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar