deletando registros dentro de um while

Delphi

17/05/2004

Não dá muito certo excluir usando o while, estou fazendo da seguinte forma:

Datamodulo.TbChPre.First;
while not Datamodulo.TbChPre.Eof do
begin
if Datamodulo.TbChPreData.Value <=Date then
begin
Datamodulo.TbChPre.Delete;
end;
Datamodulo.TbChPre.Next;
end;

o problema é q qdo ele encontra e deleta o registro não dá muito mais certo o while ele parece q bagunça um pouco e acaba não excluindo tudo q precisa, alguém pode me dar uma ajudinha?


Janete

Janete

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

17/05/2004

Não tenho muita certeza mais tenta ai..

Datamodulo.TbChPre.First;
while not Datamodulo.TbChPre.Eof do
begin
if Datamodulo.TbChPreData.Value <=Date then
begin
Datamodulo.TbChPre.Delete;
[b:0d9258d01e]Datamodulo.TbChPre.ApplyUpDates; [/b:0d9258d01e]
end;
Datamodulo.TbChPre.Next;
end;


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

17/05/2004

Colega,

With Datamodulo.TbChPre do
begin
  First;
  while not Eof do
  begin
    if FieldByName(´Data´).Value <= Date then
      Delete
    else
      Next;
  end; // while .. do
end;



GOSTEI 0
Rômulo Barros

Rômulo Barros

17/05/2004

With(QueryAuxiliar)Do
Begin
  Close;
  Sql.Add(´Delete from Tabela Where Data <= ´ + QuotedStr(DateToStr(Data)));
  QueryAuxiliar.ExecSql;
  Close;
End;



GOSTEI 0
Janete

Janete

17/05/2004

[quote:865ed429f4=´Aroldo Zanela´]Colega,

With Datamodulo.TbChPre do
begin
  First;
  while not Eof do
  begin
    if FieldByName(´Data´).Value <= Date then
      Delete
    else
      Next;
  end; // while .. do
end;
[/quote:865ed429f4]

Dessa forma deu certo, obrigado a todos! :D


GOSTEI 0
POSTAR