deletando registros dentro de um while
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?
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
Curtidas 0
Respostas
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;
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
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
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
17/05/2004
[quote:865ed429f4=´Aroldo Zanela´]Colega,
[/quote:865ed429f4]
Dessa forma deu certo, obrigado a todos! :D
With Datamodulo.TbChPre do begin First; while not Eof do begin if FieldByName(´Data´).Value <= Date then Delete else Next; end; // while .. do end;
Dessa forma deu certo, obrigado a todos! :D
GOSTEI 0