Fórum Selecionar e excluir itens do Dbgrid ( Urgente) #510134

10/02/2015

0

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

Responder

Post mais votado

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!

Douglas

Douglas
Responder

Gostei + 1

Mais Posts

10/02/2015

Renato Rubinho

Buenos,

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

Abraççç,
rrubinho
Responder

Gostei + 0

10/02/2015

Watson Rocha

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.
Responder

Gostei + 0

10/02/2015

Renato Rubinho

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.
Responder

Gostei + 0

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

Aceitar