我用到了一adodataset1,其中的commandtext为 select * from charge_master ,有另外一个
adodataset2取出相应从表中的数据,我想更改adodataset1中的数据后定义一书签,然后
adodataset1.close ;
adodatset1.open ;
然后再回到书签的位。说书签无效。
保存按钮click事件 
if not dm.AdoCn.InTransaction then dm.AdoCn.BeginTrans;
    try
      MBookMark := ADODataSet1.GetBook;
      try
        ADODataSet1.DisableControls;
        ADODataSet2.DisableControls;
        Dbgrid1.DisableAlign;
        AdoDataSet1.Post;
        ADODataSet1.GotoBook(MBookMark);
        adodataset1.EnableControls;
        adodataset2.EnableControls;
        dbgrid1.EnableAlign;
        //if MBookMark<>nil then ;
      finally
        ADODataSet1.FreeBook(MBookMark);
      end;
   except 
    dm.adocn.rollbacktrans; 
  end; 
关键时有时有效有时无效,当修改一时间字段时无效。请问如何解决。 
在adodataset1的afterpost事件中有
adodataset1.close ;
adodataset1.open; 
请高手指点
 
这家伙水平不错,就是太菜了