for i := 0 to DBGrid1.SelectedRows.Count - 1 do begin //利用书签遍历各记录 end ;
Screen.Cursor:=CrHourGlass; if not AdoDataSet2.Active then AdoDataSet2.Active := True; AdoDataSet2.DisableControls; for I := 0 to DBGrid1.SelectedRows.Count - 1 do begin ADODataSet1.GotoBook(pointer(DBGrid1.SelectedRows.Items[i])); AdoDataSet2.Append; AdoDataSet2.FieldByName('CHARGE_ITEM_NAME').AsString := ADODataSet1.FieldByName('RES_NAME').AsString; AdoDataSet2.FieldByName('RES_CODE').AsString := ADODataSet1.FieldByName('RES_CODE').AsString; AdoDataSet2.FieldByName('CHARGE_ITEM_PRICE').AsCurrency := ADODataSet1.FieldByName('RES_SALE_PRICE').AsCurrency; AdoDataSet2.FieldByName('CHARGE_ITEM_SL').AsFloat := 1; AdoDataSet2.Post; end; //for i try AdoDataSet2.Refresh; except AdoDataSet2.Close; AdoDataSet2.Open; end;
hmily1688(混在石家庄)德就能搞定
将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;
begin
//利用书签遍历各记录
end ;
if not AdoDataSet2.Active then AdoDataSet2.Active := True;
AdoDataSet2.DisableControls;
for I := 0 to DBGrid1.SelectedRows.Count - 1 do
begin
ADODataSet1.GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
AdoDataSet2.Append;
AdoDataSet2.FieldByName('CHARGE_ITEM_NAME').AsString := ADODataSet1.FieldByName('RES_NAME').AsString;
AdoDataSet2.FieldByName('RES_CODE').AsString := ADODataSet1.FieldByName('RES_CODE').AsString;
AdoDataSet2.FieldByName('CHARGE_ITEM_PRICE').AsCurrency := ADODataSet1.FieldByName('RES_SALE_PRICE').AsCurrency;
AdoDataSet2.FieldByName('CHARGE_ITEM_SL').AsFloat := 1;
AdoDataSet2.Post;
end; //for i
try
AdoDataSet2.Refresh;
except
AdoDataSet2.Close;
AdoDataSet2.Open;
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;