大致功能是这样:就是为了报个更新日志,日志的内容是哪一行的哪些数据更新过了。比如我现在有上图这个dataview   叫它表A。然后现在把它复制一份出来,叫表B。
然后我对表B里面的数据进行更新(只修改数据,不增加或者删除行或者列),除了mc那一列的数据不做修改,其他的数据都可能会修改。修改完成后,我想做一个更新日志,只要某一个行的数据有过改动,和原表A的不一样,就把这行的Mc和修改的内容记录并能查找出来。PS:之前我有类似的需求,当时只有两列,所以我用了TDictionary的结构,但是它只能记录并查找2个string数据。
        
   NewList := TDictionary<string, string>.Create; 
   OldList := TDictionary<string, string>.Create;
现在需要记录不止两个数据,各位有没有什么好的方法?用Tstring还是其他什么的结构来记录查找这些数据。

解决方案 »

  1.   

    为此表,增加一个临时字段, 类型bit。这样,读取数据后,该字段为False:
    1、新增行,该行的临时字段为True;
    2、修改后,该行的临时字段为True;打印表时,当该行的临时字段为True,就打印。 
      

  2.   


    1、操作不会增加行
    2、修改后临时字段为true,我现在就是不知道该怎么判断这一行的数据被修改过了
      

  3.   

    监控数据变化交给数据库效率更高,比如用触发器、CDC功能。如果你用逐条查询对比的方式来监控,只需要中间变量来暂存,普通字符串、整数变量就可以啊。复杂一点可以用记录类型、或声明一个类用数组或列表管理。
      

  4.   

    如果你C/S模式,可以利用ClientDataSet的Delta,记录了变化的数据。