Foxtable(狐表)用户栏目专家坐堂 → “听雪落的声音”兄请进....


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

主题:“听雪落的声音”兄请进....

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
“听雪落的声音”兄请进....  发帖心情 Post By:2009/6/15 20:12:00 [只看该作者]

你提到两个问题:

1、两个表,父表5000多条记录,子表将近40000,每个表十几列,导入数据半个小时了,硬是没有反应。没办法,删除关联重新导入,大概花了十分钟。
2、然后重新建立关联,打开窗口,窗口中有一个datalist控件,然后又是十几分钟的等待,没有反应,删除关联,重新应用窗口,三秒左右打开。

第二个问题,我已经解决,不管有没有关联,都可以3秒打开。
但是第一个问题,我不明白,导入数据是新建一个表,性能应该和以前的表及关联无关,如果是合并,我测试是非常高效的,并不存在你说的问题啊,请老兄明示一下。
[此贴子已经被作者于2009-6-16 8:14:23编辑过]

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


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
  发帖心情 Post By:2009/6/16 0:47:00 [只看该作者]

有收获,您俩继续讨论,我旁观!


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


加好友 发短信
等级:幼狐 帖子:155 积分:1292 威望:0 精华:0 注册:2009/2/23 15:17:00
  发帖心情 Post By:2009/6/16 8:43:00 [只看该作者]

估计是我没有说明白,不是导入数据,是把导入数据弄到需要用的表里面。 另外被导入表使用datacolchange后也会速度变慢,和关联差不多都是半小时没反应。

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


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

明白了,如果不是经常大批量导入数据,那么就忍受了吧。
如果经常这样做,按下面的思路设计:

1、新增一个逻辑型全局变量,假定变量名为"A",在项目的Initialize事件加入代码:

Vars.Add("A",GetType(Boolean),False


2、在导入数据的代码改为:

Vars("A") = True
原来的导入代码
Vars("B") = False

3、DatacolChanged的事件代码设为:
If Vars("A") = True Then
   Return
end If
原来的代码

经过上述设计,导入数据的时候,就不会执行DatacolChanged事件的代码。

另外要检查检查自己的代码设计是否合理,同样的任务,不同的设计,性能相差10到1000倍都可能。

[此贴子已经被作者于2009-6-16 8:51:46编辑过]

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


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

还有一个方案,你可以继续使用关联和表达式列,反正DataList的问题已经解决。
导入前清除所有表达式列的表达式,导入后恢复:

DataTables("某表A").DataCols("某列1").Expression = ""
DataTables("某表A").DataCols("某列2").Expression = ""
DataTables("某表B").DataCols("某列C").Expression = ""
原来的导入代码
DataTables("某表A").DataCols("某列1").Expression = "原计算公式"
DataTables("某表A").DataCols("某列2").Expression = "原计算公式"
DataTables("某表B").DataCols("某列C").Expression = "原计算公式"

 回到顶部
帅哥哟,离线,有人找我吗?
听雪落的声音
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:155 积分:1292 威望:0 精华:0 注册:2009/2/23 15:17:00
  发帖心情 Post By:2009/6/16 9:07:00 [只看该作者]

谢了,学习学习!
你给的替代关联例子,数据多了感觉速度不是很理想
外部数据源情况下,filter换成loadfilter速度成倍提高,不知道内部数据情况下会不会有所提高。


 回到顶部
美女呀,离线,留言给我吧!
yangming
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/6/16 9:21:00 [只看该作者]

学习,收藏了!

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


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

以下是引用听雪落的声音在2009-6-16 9:07:00的发言:

外部数据源情况下,filter换成loadfilter速度成倍提高,不知道内部数据情况下会不会有所提高。


你该不会用Filter配合Load使用吧?
这样完全失去了动态加载的意义。
老兄真的应该先看帮助了。


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/6/16 10:13:00 [只看该作者]

以下是引用狐狸爸爸在2009-6-16 9:33:00的发言:


你该不会用Filter配合Load使用吧?
这样完全失去了动态加载的意义。
老兄真的应该先看帮助了。

如果这样,有什么意思!


 回到顶部