Foxtable(狐表)用户栏目专家坐堂 → [求助]打开项目的时延过长


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

主题:[求助]打开项目的时延过长

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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
[求助]打开项目的时延过长  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

外网数据源? 内网数据源?

加载的数据太多了. 
或者参考帮助的动态加载章节,选择适合自己的方式.

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/19 15:57:00 [只看该作者]

 去掉 BeforeOpenProject 的代码呢?

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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2015/1/19 16:04:00 [只看该作者]

 去掉 BeforeOpenProject 的代码 还是一样,一点改善都没有

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/19 16:07:00 [只看该作者]

以下是引用wumingrong1在2015-1-19 16:04:00的发言:
 去掉 BeforeOpenProject 的代码 还是一样,一点改善都没有

 

1、说明你的表多;

 

2、说明你加载的数量大;

 

3、你把 开发指南->动态加载 看一下


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2015/1/19 17:36:00 [只看该作者]

动态加载数据,非常好。

动态加载表,要增加很多判断,负担额外加重,得不偿失。

我现在宁愿慢一些,也要把表全加载进来,空表也好啊。

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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2015/1/22 16:59:00 [只看该作者]

我有几个外部表的数据库、如果我想实现当打开系统时只加载其中某一个数据库的表、而且只加载表先不加载数据;这样是不是打开项目的速度会变的很快?有没有解决方案?

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


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

是的,肯定会比现在快

解决方案帮助连接不是发给你了吗?

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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2015/1/22 17:07:00 [只看该作者]

好像没有看到如何对某个数据源进行区分加载的内容


图片点击可在新窗口打开查看此主题相关图片如下:360截图20150122170928062.jpg
图片点击可在新窗口打开查看


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


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

你那些表不要加载,就按照帮助的做,在外部表设置里,设置加载条件不加载任何信息

 回到顶部
总数 21 1 2 3 下一页