Foxtable(狐表)用户栏目专家坐堂 → 请狐神们指点下,项目启动速度优化方案。


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

主题:请狐神们指点下,项目启动速度优化方案。

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


加好友 发短信
等级:三尾狐 帖子:792 积分:5649 威望:0 精华:0 注册:2013/12/9 20:12:00
请狐神们指点下,项目启动速度优化方案。  发帖心情 Post By:2014/4/26 10:19:00 [只看该作者]

先介绍哈情况,

 

1、本机启动,卡表51秒到登录界面;

2、所有表数量,129个;

3、数据源为sql server,局域网;

4、自增处理过程,在 BeforeLoadInnerTable 事件中,只加载了几个表(每个表的数据量,都不100条),其它表都 e.Cancel = True

5、登录框加载事件中,处理了从文本文件中加载默认登录用户名;

 

 

狐神们,我初步估计是我方法不是很好,帮我指点下优化方案吧。

 

感谢!

 

 

 


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/26 10:23:00 [只看该作者]

2.参考帮助动态加载相关章节,采用动态加载的方式. 
4.外部表用的应该是BeforeLoadOuterTable

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


加好友 发短信
等级:三尾狐 帖子:792 积分:5649 威望:0 精华:0 注册:2013/12/9 20:12:00
  发帖心情 Post By:2014/4/26 10:34:00 [只看该作者]

前期尝试过,在 BeforeLoadOuterTable 事件中来控制表的加载。但碰到用菜单中“SQL查询表”生成的表,是个外部查询表,在这个事件中用遍历表的方法会报错,我怎么也跳不过这一步,所以,临时采取回避的办法,改成了在 BeforeLoadInnerTable 事件中来处理。

 

 

狐爸的方法我还不会

 

引用狐爸回复:

如果查询表是在foxtable创建的,那么肯定不能用在select语句中。

不过你可以在后天数据库建立查询表,这样这个查询表就能用在select语句中,就像普通的表一样。


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/26 10:36:00 [只看该作者]

请研究一遍帮助的动态加载相关章节,然后动手尝试一下.自然明白该怎么做了.

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


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

1、既然是局域网,用SQL Server,怎么会出现BeforeLoadInnerTable事件呢? 这个是内部表,外部表是BeforeLoadOuterTable事件。

 

2、我那句话的意思是:

http://www.foxtable.com/help/topics/2924.htm

 

3、不过部分查询统计类的表,没有必要初始加载,需要的时候生成即可,方法很多:

http://www.foxtable.com/help/topics/0695.htm

http://www.foxtable.com/help/topics/1279.htm

http://www.foxtable.com/help/topics/1279.htm

http://www.foxtable.com/help/topics/1908.htm

 

4、如果你要一开始添加好也可以,那么看看:

http://www.foxtable.com/help/topics/2751.htm

 

5、最后很关键,你要知道你的事件用在哪里,你可以用秒表启动计算一下,方法:

 

a、BeforeOpenProject加上代码:

 

MessageBox.show("foxtable启动完毕")

 

b、Initialize加上代码:

 

MessageBox.show("数据加载完毕")

 

c、在AfterOpenProject:

MessageBox.show("项目启动完毕")

 

[此贴子已经被作者于2014-4-26 10:50:36编辑过]

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


加好友 发短信
等级:三尾狐 帖子:792 积分:5649 威望:0 精华:0 注册:2013/12/9 20:12:00
  发帖心情 Post By:2014/4/26 11:17:00 [只看该作者]

一顿大餐,起到作用了。这样优化,我先前写的很多地方又要改了。

 

图片点击可在新窗口打开查看 多谢啦。

 

我觉得这方法,对很多狐友都很有帮助。


 回到顶部