以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 代码执行时间太长 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=15860) |
-- 作者:netfox168 -- 发布时间: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 -- 发布时间:2012/1/14 18:27:00 -- 能否優化,關鍵你要清楚交待想實現的目的及上傳測試文件,單憑片言只字,誰知道呢? |
-- 作者:czy -- 发布时间:2012/1/14 18:52:00 -- 1400多行应该是零点几秒的事,这么耗时肯定不是Filler的问题。 执行Filler前先暂停这个表的事件,如确需计算,填充完后再进行计算。
|
-- 作者:netfox168 -- 发布时间:2012/1/14 23:54:00 -- 原因知道了,是在目标表(生产线)有“流水账”(DataColChenged)事件代码,数据填入时自动计算,删除后只用了零点几秒。问题是如何令“流水账”代码在 Fill 代码执行后再执行?因为 Fill 代码是在 MainTableChanged 事件中的,而“流水账”代码是在 DatColChanged 事件中的。如何安排? |
-- 作者:mr725 -- 发布时间:2012/1/15 1:00:00 -- 参看:暂停执行事件代码 |