RT,
我试过Adoquery.active:=false;Adoquery.active:=true;
和Adoquery.refresh,有的情况下可以更新B窗口的数据,有的时候要关闭B窗口重开才能更新数据,这是什么原因?

解决方案 »

  1.   

    比方说你的数据集在打开的时候已经是将数据按照某种条件select出来的,而不是整张表的记录,那么你新加或修改的记录也许是不符合那个select条件的,所以就算数据集刷新过了,那么也是显示不出改动的。
      

  2.   

    有可能是你的程序在使用过程中改变了它的 sql语句
    也不建议你用关闭激活来进行刷新,我建议你用 语句来刷新
      str := 'select * from ... where ...';
      Adoquery.Close;
      Adoquery.SQL.Clear;
      Adoquery.SQL.ADD(str);
      Adoquery.open;
    end;
      

  3.   

    在A窗口的OnClose事件里面刷新Adoquery:with AdoQuery do
    begin
      Close;
      Sql.Clear;
      Sql.Add(Str);
      Open;
    end;
      

  4.   

    以上方法都试过了,也是不行,要么就要关闭窗口重来,要么就通过一个button的onclick=nbrefresh来刷新1-3次才能把数据更新
      

  5.   

    可以用AdoQuery.Requery([])试试看,不知道能不能对你有用
      

  6.   

    AdoQuery.Requery([])
    这个要哪些参数?