在DBGrid + ADOQuery 中修改数据,修改完成后刷新如何把光标定位在当前修改的记录上。谢谢

解决方案 »

  1.   

    如果你是修改在ADOQuery中的,为什么还要刷新呢?
    如果你不是修改在ADOQuery中的,那你这个数据集有没有主键?有的话用Locate啊!
    如果你连主键都修改了,那没办法了,只好定位到第一条了。
    如果查询的结果是有序的,你可以记录行号啊,刷新跳到这行不就行了!
      

  2.   

    如果查询的结果是有序的,你可以记录行号啊,刷新后再用moveby就可以了。
      

  3.   

    同意liang_z(千山一刀之忍者神龟) 的。
      

  4.   

    var
      tmp: TBookMark;
    begin
      tmp:=DataSet1.BookMark;
      DataSet1.Post;
      DataSet1.Active:=False;
      DataSet1.Active:=True;
      DataSet1.BookMark:=tmp;
    end;
      

  5.   

    var
      tmp: string;
    begin
      tmp:=DataSet1.BookMark;
      DataSet1.Post;
      DataSet1.Active:=False;
      DataSet1.Active:=True;
      DataSet1.BookMark:=tmp;
    end;
      

  6.   

    修改后保留一个可以标识这条记录的字段名和值(修改后)
    然后用
    ADOQuery.Locate(字段名,值)
      

  7.   

    你加一个变量来表示这个修改的记录的关键字,然后用LOCATE!!!!!