以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请问远程升级代码的位置 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62843) |
-- 作者:瞩望星空 -- 发布时间:2015/1/8 19:55:00 -- 请问远程升级代码的位置 我发现把项目启动时的升级检查代码放在“AfterOpenProject”或“LoadUserSetting”下面,在升级前,都会出现加载数据表的过程 那么,能否把检查升级代码放在“BeforeConnectOuterDataSource”中?没有升级再去连接数据库? 升级检查代码: If Syscmd.Project.Update(False,False) = False Then \'如果没有升级‘需要执行的命令 End If |
-- 作者:有点甜 -- 发布时间:2015/1/8 19:57:00 -- 不行,除非审计你自己做。
又或者开始不加载任何表,全部放在afteropenproject那里加载出表来。 |
-- 作者:瞩望星空 -- 发布时间:2015/1/8 20:11:00 -- 嗯,刚才试了一下,是不行。 这样不加载任意表是不是按帮助“示例一”去设置? 示例一 例如在BeforeLoadInnerTable(内部表)或BeforeLoadOuterTable(外部表)中设置代码: Select
Case
e.DataTableName 这样在打开项目的时候,表A和表B始终都会加载,表C只有在开发者打开项目的时候才会加载,而其它表都不会加载。 |
-- 作者:有点甜 -- 发布时间:2015/1/8 20:12:00 -- 直接写 e.Cancel = True |
-- 作者:瞩望星空 -- 发布时间:2015/1/8 20:25:00 -- 哦,好,谢谢版主 |
-- 作者:瞩望星空 -- 发布时间:2015/1/9 0:04:00 -- 晚上,试了一下,在我的项目中,发生矛盾了。 这个项目要在用户登录后,检查是否有“到期”数据要处理,所以,以前在用户登录LoadUserSetting事件中,设置了检查几个表是否有“到期”的代码。 现在设置了初始不加载表,在“AfterOpenProject”中才加载表。这样,在“LoadUserSetting”设置检查表数据的代码就出错。 而把这些检查代码放在别的地方,在切换用户后,又不能自动运行。 |
-- 作者:Bin -- 发布时间:2015/1/9 8:09:00 -- 所以,你在AfterOpenProject中也要检查一次. 代码带过去. 在LoadUserSetting 你判断一下表是否加载了.加载了再检测,没加载就不执行那些代码了. 一个IF条件的事. 这样第一次打开项目的时候,不会执行LoadUserSetting 而是执行AfterOpenProject 你切换用户的时候 就会执行LoadUserSetting
|
-- 作者:瞩望星空 -- 发布时间:2015/1/9 8:24:00 -- 嗯,我理一下思路,再修改一下。 谢谢甜总。 |
-- 作者:瞩望星空 -- 发布时间:2015/1/9 13:02:00 -- 甜总,现在升级后,显示加载表的问题是解决了,但是,每次升级完后,都显示一个出错信息,能不能看看是怎么回事? .NET Framework 版本:2.0.50727.3655 Foxtable 版本:2014.11.11.1 错误所在事件: 详细错误信息: Cannot access a disposed object. Object name: \'gw\'. 这个“gw”不是我写的,应该是FT系统自带的。 是不是升级语句中,应该加入退出系统的命令? 改成这样? If Syscmd.Project.Update(False,False) = False Then \'如果没有升级 ‘需要执行的命令 else Syscmd.Project.Exit(False) End If |
-- 作者:有点甜 -- 发布时间:2015/1/9 14:13:00 -- 退出项目写
System.Diagnostics.Process.GetProcessesByName("foxtable")(0).Kill
|