以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  高速合并、保存的速度太慢,试过论坛上的方法都无效  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=124154)

--  作者:magus1123
--  发布时间:2018/8/31 15:00:00
--  高速合并、保存的速度太慢,试过论坛上的方法都无效
在项目中的本地表使用高速合并速度很慢,保存表的速度也很慢,数据行大概为9000行。
检查过全局代码、全局函数、表事件datacolchanged、全局表事件。
都没有效果,本地表高速合并、保存9000行需要大概15分钟的时间。
试过:
SystemReady = False
\'追加数据代码
SystemReady = True
的方式,依然无效。速度还是很慢。

我重新新建了一个空项目,直接高速导入一张表,速度很快,然后把这张表清空行,只保留表格式。然后进行高速合并,速度也很快。
求老师指点

导入按钮代码为:
SystemReady = False
Try
DataTables("分仓库存").DataRows.Clear
Tables("导入数据_Table1").DataSource = DataTables("分仓库存")
Dim dlg As new OpenFileDialog
dlg.Filter = "excel|*.xls"
If dlg.ShowDialog = DialogResult.OK Then
Dim mg As New Merger
mg.SourcePath = dlg.FileName
mg.Format = "excel" \'指定格式
mg.SourceTableName = "数据段1$" \'指定要合并的表
mg.DataTableName = "分仓库存" \'指定接收数据的表
mg.Merge() \'开始合并
End If
DataTables("分仓库存").Save
DataTables("本地关联表").DataRows.Clear

Catch ex As Exception
MessageBox.Show("追加数据失败")
End Try
SystemReady = True

[此贴子已经被作者于2018/8/31 15:09:01编辑过]

--  作者:magus1123
--  发布时间:2018/8/31 15:04:00
--  
任务管理器里狐表是直接高速合并就变成“无响应”了
狐表是最新版的

--  作者:有点甜
--  发布时间:2018/8/31 15:16:00
--  

1、高速合并的代码参考

 

http://www.foxtable.com/webhelp/scr/0685.htm

 

2、保存慢,参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=98689&replyID=680089&skin=1

 

如果是sqlserver数据库,可以直接写入数据库 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=109019&skin=0

 

3、大数据量,可以参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=100317&skin=0

 


--  作者:magus1123
--  发布时间:2018/8/31 15:25:00
--  
老师,我说的不是这个。
现在的问题是,在新建的项目高速合并很快,在我这里项目高速合并很慢。
表都是本地表,不是SQL表。

想找的原因是什么,不然这个系统导入几张表都一个小时了。

--  作者:有点甜
--  发布时间:2018/8/31 15:31:00
--  
以下是引用magus1123在2018/8/31 15:25:00的发言:
老师,我说的不是这个。
现在的问题是,在新建的项目高速合并很快,在我这里项目高速合并很慢。
表都是本地表,不是SQL表。

想找的原因是什么,不然这个系统导入几张表都一个小时了。

 

1、清空你【表属性】各个事件的代码,特别是 datacolchanged、datacolchanging、drawcell等事件的代码;

 

2、压缩项目 http://www.foxtable.com/webhelp/scr/0006.htm

 

3、使用自带的【高速合并】菜单合并数据,不要用你自己写的代码