Fórum Excluir registros em um filtro no ClientDataSet #420000

17/07/2012

0

Pessoal gostaria da ajuda de vocês.

Problema: Preciso excluir os registros em um ClientDataSet que forem filtrados em uma determinada condição. Veja o exemplo abaixo.

ClientDataSet1.Filtered := False;
ClientDataSet1.Filter:= IDT_MUNICIPIO = 1;
ClientDataSet1.Filtered := True;



No caso acima devo excluir todos os registros que retornarem na condição.

A única forma que encontrei para fazer isso e varrendo todos os registros que retornaram do filtro e executando o método Delete. Veja abaixo.

ClientDataSet1.Filtered := False;
ClientDataSet1.Filter:= IDT_MUNICIPIO = 1;
ClientDataSet1.Filtered := True;
ClientDataSet1.First;

while (not(ClientDataSet1.Eof)) do
  ClientDataSet1.Delete;

ClientDataSet1.Post;


Gostaria de saber se alguém utiliza alguma forma diferente para fazer essa exclusão.

Obrigado a todos.
Johni Marangon

Johni Marangon

Responder

Posts

17/07/2012

William

Colega para excluir no clientdataset usando antes um filtro tem q ser assim mesmo, percorrendo todos os registros.

Apesar de alguns profissionais afirmarem que lugar de SQL é no servidor e não no cliente, vc poderia usar uma instrução SQl DELETE FROM TABELA WHERE <CONDIÇÃO>, desse modo a própria instrução iria se encarregar de filtrar e deletar os registros.
Responder

Gostei + 0

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

Aceitar