起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 218|回复: 3

【搞定】循环检查做删除动作的问题**

[复制链接]
发表于 2007-12-5 10:07:57 | 显示全部楼层 |阅读模式
DataSetBrokerSALES_RECORD_INPUT_DTS.DataSet.Last;
  while not DataSetBrokerSALES_RECORD_INPUT_DTS.DataSet.Bof do
begin
      if   条件 then
   begin
            DataSetBrokerSALES_RECORD_INPUT_DTS.DataSet.Delete;
      end;
     DataSetBrokerSALES_RECORD_INPUT_DTS.DataSet.Prior;
end;

从最后一条往上检查,当符合条件,就删除,不过这样做,有时候会漏删一条,这个我推算过,确实会这样,现在是重复执行2次,就会完全删除,但是对于数据量大,会很影响速度,请问有什么解决办法吗?谢谢
回复

使用道具 举报

发表于 2007-12-5 10:32:44 | 显示全部楼层
数据量大,推荐用delete语句删除。楼主为什么会漏掉一条需要自己跟踪一下代码
回复 支持 反对

使用道具 举报

发表于 2007-12-5 11:00:02 | 显示全部楼层
我一般这么写
DataSet.First;
while not DataSet.Eof do
begin
  if 条件 then
    DataSet.Delete
  else
    DataSet.Next
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-5 12:25:09 | 显示全部楼层
我上面的代码是会漏掉的,只是不好表达。
用alang的是可以的,用else是可以完全删掉了。多谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-1 17:50 , Processed in 0.046743 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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