Selecionar e excluir itens do Dbgrid ( Urgente)

Delphi

10/02/2015

Pessoal, Bom dia.

Alguém pode me ajudar , por favor ?
Tenho uma DBgrid e um botão .
Desejo selecionar os itens no Dbgrid e excluir todos.
Alguem pode me ajudar como faz isso ?

Segue o comando de exclusão que está no botão de excluir.

begin
if dm.cdsMonitoramento.State in [dsBrowse] then
begin
if MessageDlg('Deseja excluir o registro?', mtConfirmation, mbYesNo, 0) = mrYes then
begin

DBGrid1.DataSource.DataSet.Delete;
dm.cdsMonitoramento.Delete;
dm.cdsMonitoramento.ApplyUpdates(-1);
dm.cdsMonitoramento.Refresh; }

end;
end;
end;
Watson Rocha

Watson Rocha

Curtidas 0

Melhor post

Douglas

Douglas

12/02/2015

Olá Watson, tudo bem?
Você irá fazer da seguinte forma abaixo:

procedure TForm1.Button1Click(Sender: TObject);
var
 i: Integer;
begin
  if dm.cdsMonitoramento.State in [dsBrowse] then
  begin
    if MessageDlg('Deseja excluir o registro?', mtConfirmation, mbYesNo, 0) = mrYes then
    begin
      for I := 0 to DBGrid1.SelectedRows.Count - 1 do
      begin
        DataSource1.DataSet.GotoBookmark(DBGrid1.SelectedRows.Items[i]);
        DataSource1.DataSet.Delete;
      end;
      DataSource1.DataSet.Open;
    end;
  end;
end;


Você vai utilizar o objeto dataSource que está conectado ao seu dm.cdsMonitoramento. No dbGrid ative as opções de MultiSelect e RowSelect.

Qualquer dúvida estou à disposição!
GOSTEI 1

Mais Respostas

Renato Rubinho

Renato Rubinho

10/02/2015

Buenos,

Segue um link from exemplo de utilização do Multiselect.

Abraççç,
rrubinho
GOSTEI 0
Watson Rocha

Watson Rocha

10/02/2015

Rubinho, Bom dia.

Obrigado pelo retorno, mas esse link infelizmente nao me atende.
Eu já fiz isso e nao deu certo.
Eu ativei a função do Multiselect , mas não exclui.
Exclui apenas a 1 linha.
GOSTEI 0
Renato Rubinho

Renato Rubinho

10/02/2015

Aquele era um exemplo para você utilizar como base, mas para você não serve porque, após o Delete, ApplyUpdate e Refresh, o clientdataset é atualizado e perde a seleção do grid.
Uma sugestão é você fazer primeiro um loop (conforme o exemplo) e armazenar em uma matriz a chave dos registros que estão marcados.
Ao final você terá os registros que deverão ser excluídos.
A partir da matriz você poderá excluí-los.
GOSTEI 0
POSTAR