起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: xhong

【结】TDeltaDataSet是不是有Bug?

[复制链接]
发表于 2010-1-25 13:52:01 | 显示全部楼层
来了
参考代码如下

VAR
  FDelta2: TDeltaDataSet;
begin
  Memo1.Lines.Clear;
  if not Assigned(FDelta2) then
  begin
    FDelta2 := TDeltaDataSet.Create(DataSetBrokerBZSJJ1.DATASET);
  end;
  FDelta2.First;
  while not FDelta2.Eof do
  begin
    Case FDelta2.UpdateKind of
    TUpdateKind.ukDelete: Dialogs.ShowMessage('this record is Deleted');
    TUpdateKind.ukInsert: Dialogs.ShowMessage('this record is Inserted');
    TUpdateKind.ukModify:
    begin
      Memo1.Lines.Add(FDelta2.Fields[1].AsString);
     FDelta2.NextStatus ;
      Memo1.Lines.Add(FDelta2.Fields[1].AsString);
    end;
       else Dialogs.ShowMessage('error');
    end;
   FDelta2.Next ;
  end;
end;

这样就ok了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-25 14:37:05 | 显示全部楼层
测试通过了,被之前的帖子误导了,那个看你也改OK了。
回复 支持 反对

使用道具 举报

发表于 2010-1-25 15:46:35 | 显示全部楼层
好,结
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-27 08:30:18 | 显示全部楼层
那Next和NextStatus的区别是什么呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-27 13:37:50 | 显示全部楼层
那Next和NextStatus的区别是什么呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-28 08:35:05 | 显示全部楼层
那Next和NextStatus的区别是什么呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-29 08:35:19 | 显示全部楼层
那Next和NextStatus的区别是什么呢?
回复 支持 反对

使用道具 举报

发表于 2010-1-29 10:48:33 | 显示全部楼层
不好意思,这个东东有点复杂
在TDeltaDataSet里面,记录有点复杂,如果是增加,和删除,里面记录是一条新的一条旧,next和nextstat是一样的,而如果是修改的话,就记录一个旧的两个新的,此时next和nextstat就不一样了。所以在TDeltaDataSet,nextstat可以保证每次都是对应到正确的记录上,不推荐使用next
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-29 15:01:16 | 显示全部楼层
如果是增加,和删除,里面记录是一条新的一条旧
好像不是,我测试了,增加和删除分别就都是一条。而修改,我测试是一个旧的一个新的。
11楼给的代码就是用Next遍历的啊,遍历时候我用NextStatus有问题
我理解你们说的:nextstat可以保证每次都是对应到正确的记录上,意思仅针对修改情况,是这样吗
请测试一下确认一下,这部分似乎测试结果和预想的总是不一样
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-29 16:57:41 | 显示全部楼层
很急,一个礼拜了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-11 22:41 , Processed in 0.045270 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表