以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]打开项目的时延过长 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=63362) |
|
-- 作者:wumingrong1 -- 发布时间:2015/1/19 15:55:00 -- [求助]打开项目的时延过长 我的项目在打开的过程中很慢、需要30多秒才能打开;不知道是什么原因。能不能帮我看看有没有提升空间 BeforeOpenProject中写有命令: Dim s As String = "Provider=SQLOLEDB.1;Password=234596;Persist Security Info=True;User ID=w457wzx;Initial Catalog=网维中心管理系统;Data Source=61.235.105.92,100" \'赋予"s"对服务器数据库连接情况进行检测 If Connections.TryConnect(s) = False Then \'如果数据库连接不通,那么 e.Cancel = True \'拒绝打开项目 e.HideSplashForm = True \'关闭Foxtable的启动封面 MessageBox.Show("无法连接到服务器,请检查网络或与管理员联系", "未连接提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification) \'弹出提示窗口
Else
If Date.Today > new Date(2016, 12, 31) Then \'如果电脑日期大于 ****日期 e.Cancel = True \'拒绝打开项目 e.HideSplashForm = True \'关闭Foxtable的启动封面 MessageBox.Show("该系统超过授权使用期限,请与开发者联系", "未授权提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification) \'弹出提示窗口
End If End If AfterOpenProject中写有命令: Tables("本机注册表").Rows(0)("机器码") = ComputerId \'在"本机注册表""机器码"列第一行填入机器码 DataTables("本机注册表").Save() Dim r As Row = Tables("本机注册表").Rows(0) \'r代表"本机注册表"第一行 Dim jqm As DataRow = DataTables("系统注册信息表").Find("机器码 = \'" & r("机器码") & "\'") \'fdr代表"系统注册信息表"的机器码=r表的机器码 Dim zcm As DataRow = DataTables("系统注册信息表").Find("使用授权 = \'FALSE \'") \'fdr代表"系统注册信息表"的机器码=r表的机器码 If jqm Is Nothing Then \'如果"本机注册表"的"机器码"与"系统注册信息表"的"机器码"列没有相同内容,那么 MainTable = Tables("系统注册信息表") \'打开"***"表 Forms("填写申请资料窗口").Open() \'打开"***"窗口
Else
If jqm IsNot Nothing AndAlso jqm("使用授权") = "FALSE" Then \'如果"系统注册信息表"的"使用授权"为"FALSE",那么 MessageBox.Show("管理员还未完成对本机的授权,请与管理员联系", "未授权提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification) \'弹出提示窗口 Syscmd.Project.Exit() \'正常退出飞狐 Return \'这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
Else
If jqm IsNot Nothing AndAlso jqm("使用授权") = "TRUE" AndAlso jqm("截止日期") < Date.Today Then MessageBox.Show("本计算机使用该软件的期限已经过期,请与管理员联系", "未授权提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification) \'弹出提示窗口 Syscmd.Project.Exit() \'正常退出飞狐 Return \'这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
Else If jqm IsNot Nothing AndAlso jqm("使用授权") = "FALSE" AndAlso jqm("截止日期") >= Date.Today Then MessageBox.Show("管理员还未完成对本机的授权,请与管理员联系", "未授权提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification) \'弹出提示窗口 Syscmd.Project.Exit() \'正常退出飞狐 Return \'这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
Else If Tables("系统维护").Current("系统维护") = True Then \'如果电脑日期大于 ****日期 MessageBox.Show("本系统于"&Tables("系统维护").Current("开始时间")&"至"&Tables("系统维护").Current("计划完成")&"期间进行维护,请该时间后再登录系统!!!", "系统维护提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification) \'弹出提示窗口 Syscmd.Project.Exit() \'正常退出飞狐 Return \'这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错 Else
If Syscmd.Project.Update(False,False) = False Then \'如果没有升级(False,True) Forms("用户登录").Open() \'打开 用户登录 窗口 If _UserName = "" Then \'如果用户名= 空 system.diagnostics.process.GetProcessesByName("foxtable")(0).kill End If Else system.diagnostics.process.GetProcessesByName("foxtable")(0).kill End If
End If End If
Applicati \'系统抬头显示该名称
MainTable = Tables("主页") \'打开"主页"表
Forms("主页背景窗口").Open() \'打开"主窗口(主页)"窗口
For Each u As Row In Tables("本机注册表").Rows Dim dru As DataRow = DataTables("系统注册信息表").Find("机器码 = \'" & u("机器码") & "\'") If dru IsNot Nothing Then For Each s As String In "截止日期".Split("|") u(s) = dru(s) Next
End If Next
End If End If End If [此贴子已经被作者于2015-1-19 15:58:03编辑过]
|
|
-- 作者:Bin -- 发布时间:2015/1/19 15:56:00 -- 外网数据源? 内网数据源? 加载的数据太多了. 或者参考帮助的动态加载章节,选择适合自己的方式.
|
|
-- 作者:有点甜 -- 发布时间:2015/1/19 15:57:00 -- 去掉 BeforeOpenProject 的代码呢? |
|
-- 作者:wumingrong1 -- 发布时间:2015/1/19 16:04:00 --
|
|
-- 作者:有点甜 -- 发布时间:2015/1/19 16:07:00 -- 以下是引用wumingrong1在2015-1-19 16:04:00的发言:
1、说明你的表多;
2、说明你加载的数量大;
3、你把 开发指南->动态加载 看一下 |
|
-- 作者:lsy -- 发布时间:2015/1/19 17:36:00 -- 动态加载数据,非常好。 动态加载表,要增加很多判断,负担额外加重,得不偿失。 我现在宁愿慢一些,也要把表全加载进来,空表也好啊。
|
|
-- 作者:wumingrong1 -- 发布时间:2015/1/22 16:59:00 -- 我有几个外部表的数据库、如果我想实现当打开系统时只加载其中某一个数据库的表、而且只加载表先不加载数据;这样是不是打开项目的速度会变的很快?有没有解决方案? |
|
-- 作者:Bin -- 发布时间:2015/1/22 17:03:00 -- 是的,肯定会比现在快 解决方案帮助连接不是发给你了吗?
|
|
-- 作者:wumingrong1 -- 发布时间:2015/1/22 17:07:00 -- 好像没有看到如何对某个数据源进行区分加载的内容 |
|
-- 作者:Bin -- 发布时间:2015/1/22 17:13:00 -- 你那些表不要加载,就按照帮助的做,在外部表设置里,设置加载条件不加载任何信息 |