Foxtable(狐表)用户栏目专家坐堂 → [原创] 一个小的教训!


  共有22403人关注过本帖树形打印复制链接

主题:[原创] 一个小的教训!

帅哥哟,离线,有人找我吗?
wcs
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1039 积分:7450 威望:0 精华:0 注册:2008/8/31 22:52:00
[原创] 一个小的教训!  发帖心情 Post By:2008/10/21 22:11:00 [只看该作者]

本人用这样的语句试图删除30000多行数据:

dim zhs as integer
zhs = DataTables("订单").DataRows.Count
For i As integer = 0 To zhs-1
    DataTables ("订单").DataRows.Delete(i)
Next

结果我的两核本本CPU性能达到80%以上,持续很时间也完成不了,只有强制停止了。

仔细想想,帮助中有一个StopRedraw

可以停止绘制表

可能运用这个方法可以速度快一点吧。

不知各位大侠没有更快的方法,删除表中的所有数据?
[此贴子已经被作者于2008-10-21 22:32:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/10/21 22:13:00 [只看该作者]

DataTables ("订单").DataRows.Clear()

 回到顶部
帅哥哟,离线,有人找我吗?
wcs
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1039 积分:7450 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2008/10/21 22:34:00 [只看该作者]

哈哈,我才试了试,这个要快一点的。不过还是没有达到我的快速要求。

DeleteFor(Filter)

Filter: 指定删除条件。

例如删除订单表中2007年2月1日以前的行,代码为:

DataTables
("订单").DeleteFor("[日期] < #2/1/2007#"
)

现在试试老大的建议!

[此贴子已经被作者于2008-10-21 22:34:16编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
wcs
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1039 积分:7450 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2008/10/21 22:39:00 [只看该作者]

哈哈,就是要这个效果,一瞬间,不分青红皂白,统统删除!老大的建议好。30000条记录,一秒搞定了。

实际上我是想更新一个外部数据库里的数据,使之与财务数据库基本同步。

没办法,狐表无法实施外部数据表的“新增记录、修改记录”事件的编程,只能大批处理了。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/10/22 8:28:00 [只看该作者]

需要注意的是,Clear直接从后台删除数据,没有办法反悔的。
如果删除大量数据,请压缩项目。

 回到顶部