主从表下,从表的LockType为ltBatchOptimistic,代码如下:
  if qryList.UpdateStatus <>usUnmodified then
  begin
  case Application.MessageBox('明细表数据未保存?是否保存数据?', '保存提示',
    MB_YESNOCANCEL + MB_ICONQUESTION) of
    IDCANCEL:
      begin
         Exit;
      end;
    IDYES:
      begin
         qryList.UpdateBatch();
      end;
    IDNO:
      begin
         qryList.CancelUpdates;
      end;
  end;  end;添加记录可以,但在已存在的从表记录上修改就不行,似乎qryList.UpdateStatus无变化

解决方案 »

  1.   

    usUnmodified The current record has no unapplied updates.
                    当前记录
      

  2.   


    ADO 下是针对当前记录跟BDE已经有很大区别了.
      

  3.   

    谢谢楼上的两位XD解答,主要问题就是这样,我在浏览主从表的时候,有可能对从表的记录进行修改,当离开主表记录时,如果从表已经修改,应当UpdateBatch,怎么做呢?
      

  4.   

    我现在只是判断当前数据集是否为  dsInsert,dsEdit 然后直接先post 然后再批量提交.不过 Ado 有个 FilterGroup ,好像名字记错了,可以区分哪些是修改的.
      

  5.   

    if DBGrid.DataSource.DataSet.State in [dsEdit,dsInsert] then ...