将DBBRID的多选行一次删除:var tempBookMark : TbookMark; begin If dbgrid1.SelectedRows.Count > 1 Then s := '真的要删除这些记录?' If application.MessageBox(pchar(s), 'CVSC--多媒体光盘检索播放', mb_iconinformation + mb_YesNo) = IdYes Then Begin i := 0; DBGrid1.Datasource.Dataset.DisableControls; While i <= dbgrid1.SelectedRows.Count - 1 Do Begin DBGrid1.Datasource.Dataset.Book := dbgrid1.SelectedRows.Items[i]; //重要的在这里,取得BOOKMARK TempBook := DBGrid1.Datasource.Dataset.GetBook; DBGrid1.Datasource.Dataset.GotoBook(TempBook); qry_del.ParamByName('param1').AsInteger := Dbgrid1.DataSource.DataSet.fieldbyname('id').AsInteger; qry_del.Prepare; qry_del.ExecSQL; DBGrid1.Datasource.Dataset.FreeBook(TempBook); //释放BOOKMARK inc(i); //下一个选择记录 End; DBGrid1.Datasource.Dataset.EnableControls; End; end;
tempBookMark : TbookMark;
begin
If dbgrid1.SelectedRows.Count > 1 Then s := '真的要删除这些记录?'
If application.MessageBox(pchar(s), 'CVSC--多媒体光盘检索播放', mb_iconinformation + mb_YesNo) = IdYes Then
Begin
i := 0;
DBGrid1.Datasource.Dataset.DisableControls;
While i <= dbgrid1.SelectedRows.Count - 1 Do
Begin
DBGrid1.Datasource.Dataset.Book := dbgrid1.SelectedRows.Items[i]; //重要的在这里,取得BOOKMARK
TempBook := DBGrid1.Datasource.Dataset.GetBook;
DBGrid1.Datasource.Dataset.GotoBook(TempBook);
qry_del.ParamByName('param1').AsInteger := Dbgrid1.DataSource.DataSet.fieldbyname('id').AsInteger;
qry_del.Prepare;
qry_del.ExecSQL;
DBGrid1.Datasource.Dataset.FreeBook(TempBook); //释放BOOKMARK
inc(i); //下一个选择记录
End;
DBGrid1.Datasource.Dataset.EnableControls;
End;
end;