我想在dbgrid中将几条记录选中,然后执行批量删除,怎样做,关键是怎么表达从选中的第一条到选中的最后一条。dbgrid中数据来自一个query,删除是通过调用数据库中的存储过程来实现的。请赐教,最好能给出代码。

解决方案 »

  1.   

    使用SelectedRows,判断他的值大于0,就表示是在DBGrid中选定的,可以进行下一步操作了
      

  2.   

    使用 DBGrid 的复选项(请参考如何在DBGrid中能支持多项记录的选择)procedure TForm1.SelectClick(Sender: TObject);
    var
      x: word;
      TempBook: TBookMark;
    begin
      DBGrid1.Datasource.Dataset.DisableControls;
      with DBgrid1.SelectedRows do
        if Count <> 0 then
        begin
          TempBook:= DBGrid1.Datasource.Dataset.GetBook;
          for x:= 0 to Count - 1 do
          begin
            if IndexOf(Items[x]) > -1 then
            begin
              DBGrid1.Datasource.Dataset.Book:= Items[x];
              showmessage(DBGrid1.Datasource.Dataset.Fields[1].AsString);
            end;
          end;
        end;
      DBGrid1.Datasource.Dataset.GotoBook(TempBook);
      DBGrid1.Datasource.Dataset.FreeBook(TempBook);
      DBGrid1.Datasource.Dataset.EnableControls;
    end;
    最后来执行  query1.delete; 删除