代码之家  ›  专栏  ›  技术社区  ›  Peter Perháč

在ADOQuery中更改当前记录之前触发哪个事件?如何不更改当前记录?

  •  1
  • Peter Perháč  · 技术社区  · 16 年前

    在我的应用程序中,有如下链接的数据组件:

    DBGrid > (DataSource > ADOQuery > ADOConnection)
    DBNavigator > (DataSource > ADOQuery > ADOConnection)
    

    我应该在哪里插入代码?在用户离开当前记录之前触发的是哪个事件?如何阻止操作继续?

    if anythingChanged then
      if messageDlg(...)=mrNo then
        ADOQuery.dontChangeCurrentRecord;
    
    2 回复  |  直到 16 年前
        1
  •  4
  •   Sertac Akyuz    16 年前

    将条件中止放在“BeforeColl”上;

    procedure TForm1.ADOQuery1BeforeScroll(DataSet: TDataSet);
    begin
      if TAdoQuery(DataSet).Modified then  //if anythingChanged then
        Abort;
    end;
    
        2
  •  1
  •   Mason Wheeler    16 年前

    奇怪。在这种情况下,您使用的哪种网格不会自动呼叫Post?

    Abort .