While not ClientDataSet.Eof não está funcionando corretamente. Me ajudem
Boa noite pessoal, estou aqui criando uma rotina em que eu adiciono vários registros no clientdataset. Daí eu adicionei um checkbox na DBGrid. Vamos ao problema, suponhamos que eu tenha 5 registros na CDS e desses 5 eu marquei 3 na DBGrid. Tenho um botão para excluir os itens selecionados com o seguinte código:
Só que acontece o seguinte: Ele passa pelo primeiro registro e deleta, depois ele passa pelo terceiro registro(exemplo), com isso ele não obedece a ordem e sempre fica sobrando 1 ou 2 registros sem excluir.
Alguém me ajuda?
Uso Delphi XE
procedure TfrmEnvSMS.butExcluirClick(Sender: TObject);
begin
with dmDados do
begin
CDSNumTel.First;
while not CDSNumTel.Eof do
begin
if CDSNumTelSELL.Value = 1 then
CDSNumTel.Delete;
CDSNumTel.Next;
end;
end;
end;
Só que acontece o seguinte: Ele passa pelo primeiro registro e deleta, depois ele passa pelo terceiro registro(exemplo), com isso ele não obedece a ordem e sempre fica sobrando 1 ou 2 registros sem excluir.
Alguém me ajuda?
Uso Delphi XE
Marlon Minotti
Curtidas 0
Respostas
Renato Rubinho
02/01/2015
Buenas,
Se deletar, não precisa dar o next porque ele já vai para o próximo registro.
Coloque um else e só passe no next quando não for para deletar.
Abraççç,
rrubinho
Se deletar, não precisa dar o next porque ele já vai para o próximo registro.
Coloque um else e só passe no next quando não for para deletar.
procedure TfrmEnvSMS.butExcluirClick(Sender: TObject);
begin
with dmDados do
begin
CDSNumTel.First;
while not CDSNumTel.Eof do
begin
if CDSNumTelSELL.Value = 1 then
CDSNumTel.Delete
else
CDSNumTel.Next;
end;
end;
end;
Abraççç,
rrubinho
GOSTEI 0
Marlon Minotti
02/01/2015
Isso ai rrubinho, eu já havia achado a solução, mas mesmo assim muito obrigado. :D
GOSTEI 0