只有一个问题没有解决,就是在批量新增从表数据的时候,从表append之后前面已经append过的数据显示不出来,保存的时候才显示出来,这样很不方便,客户不知道增加了那些数据,请知道的朋友赐教。

解决方案 »

  1.   

    也不知道你使用的是什么数据集控件?
    ADOConnection1+ADOQuery1+DataSoure1+DBGrid1
    应用缓存更新 adoquery1.UpdateBatch
      

  2.   

    我用的是ADOConnection1+ADODatasetMaster+DataSoureMaster+DBGridMaster和ADODatasetDetail+DataSoureDetail+DBGridDetail,在批量增加从表的时候,从表的记录老是停在DBGridDetail的第一行,保存的时候才显示出添加(append)的全部数据,这样都不知道增加了多少数据。
      

  3.   

    看下。你的 dbgrid有没有设置 datasource
    别外: adodatasetDetail的disableControl 了。
      

  4.   

    1.从表的数据控件改为存缓操作模式,即将ADODataSet控件的locktype属性设为:ltBatchOptimistic.
    2.今后操作完资料要这样提交:ADODataSet1.UpdateBatch;或取消提交:ADODataSet1.CancelBatch;
      其中两个方法是有参数的,以UpdateBatch举例,另一个自已领误
      arCurrent 目前变动的记录更新回资料库
      arFiltered 只能符合过滤条件并且有变动的资料更新回资料库
      arAll 把所有变动的记录更新回资料库(默认参数)
      arAllChapters 更新所有被影响的Chapters
    3.要得到上次新增的记录,只要用以下方法: ADODataSet1.Filtered:=true;
     ADODataSet1.FilterGroup:=fgAffectedRecords;4:其中FilterGroup值的说明以下:
     fgUnassigned 还用过滤
    fgNone 取消过滤条件
    fgPendingRecords 有改动尚未提交的记录
    fgAffectedRecords 显示上次更新回数据表的记录
    fgFetchedRecords 显示目前有异动保存在内存中的记录
    fgPredicate 显示被删除的资料
    fgConflictingRecords 显示有改动在更新回资料表时发生错误的记录
    5:建议与事务操作结合在一起,可以在发生错误时回滚数据.
      

  5.   

    笔误修正一下:
    fgUnassigned 不用过滤