Foxtable(狐表)用户栏目专家坐堂 → 代码执行时间太长


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

主题:代码执行时间太长

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


加好友 发短信
等级:童狐 帖子:274 积分:2960 威望:0 精华:0 注册:2011/9/19 0:18:00
代码执行时间太长  发帖心情 Post By:2012/1/14 18:09:00 [只看该作者]

某表更新代码如下:

 

DataTables("生产线").DataRows.Clear

Dim f8 As New Filler

f8.SourceTable = DataTables("临时表")

f8.SourceCols = "字段1,字段2, ... ,字段12"

f8.DataTable = DataTables("生产线")

f8.DataCols = "字段1,字段2, ... ,字段12"

f8.Fill()

 

共有1400多行数据,执行了60多秒,时间实在有点长了,不知有何优化方法?

在这段代码之前共有7个表向“临时表”填数,都是零点几秒,不知为何到这就这么长时间。

 

另外在“生产线”表做“重置列”三列,也用了40多秒钟,如果有上万条记录,时间就太长了。

 

[此贴子已经被作者于2012-1-14 18:09:07编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2012/1/14 18:27:00 [只看该作者]

能否優化,關鍵你要清楚交待想實現的目的及上傳測試文件,單憑片言只字,誰知道呢?

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/1/14 18:52:00 [只看该作者]

1400多行应该是零点几秒的事,这么耗时肯定不是Filler的问题。

执行Filler前先暂停这个表的事件,如确需计算,填充完后再进行计算。

 


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


加好友 发短信
等级:童狐 帖子:274 积分:2960 威望:0 精华:0 注册:2011/9/19 0:18:00
  发帖心情 Post By:2012/1/14 23:54:00 [只看该作者]

原因知道了,是在目标表(生产线)有“流水账”(DataColChenged)事件代码,数据填入时自动计算,删除后只用了零点几秒。问题是如何令“流水账”代码在 Fill 代码执行后再执行?因为 Fill 代码是在 MainTableChanged 事件中的,而“流水账”代码是在 DatColChanged 事件中的。如何安排?

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/1/15 1:00:00 [只看该作者]

参看:暂停执行事件代码


 回到顶部