Fórum While not ClientDataSet.Eof não está funcionando corretamente. Me ajudem #506067
02/01/2015
0
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
Curtir tópico
+ 0
Responder
Posts
05/01/2015
Renato Rubinho
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
Responder
Gostei + 0
05/01/2015
Marlon Minotti
Isso ai rrubinho, eu já havia achado a solução, mas mesmo assim muito obrigado. :D
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)