删除并刷新DBgrid中的记录,其中u保持相同的位置

时间:2013-03-24 15:24:20

标签: database delphi delphi-xe2 record dbgrid

我有一个小型数据库我正在使用dbgo,我有一个DBgrid显示我的记录,我需要知道如何删除记录并刷新数据库,其中索引箭头保持在相同位置或至少转到下一个?但是目前我的索引箭头每次刷新时都从头开始跳转!

1 个答案:

答案 0 :(得分:2)

保持并重置Recno

var
I:Integer;
.......

I := Ads.Recno;
Ads.Delete;
Ads.Recno := I;

用于DBNavigator的示例实现可以是

Procedure DeleteAndKeepRecno(Ads: TCustomAdoDataset);
var
  rn: Integer;
begin
  rn := Ads.RecNo;
  Ads.Delete;
  Ads.RecNo := rn;
end;

procedure TForm4.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
  if Button = nbDelete then
  begin
    DeleteAndKeepRecno (TCustomAdoDataset(TDBNavigator(Sender).DataSource.DataSet));
    Abort;
  end;
end;