以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 代码疑问 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=8379) |
-- 作者:卟离卟弃 -- 发布时间:2010/10/15 10:03:00 -- 代码疑问 Dim b1 As String =Tables("客户端版本号")(0)("客户端版本号")
"服务器版本号" 与 "客户端版本号" 我改成一模一样的,也会 得到 MessageBox.Show("系统有更新,请更新文件!!", "提示") 这个提示,,改成不一样的,也会有提示. If b1 <> b2 Then搞不懂这个怎么失效了.
版本号 列都是 字符型, 长度都是10
求解,,杂回事呢?
|
-- 作者:程兴刚 -- 发布时间:2010/10/15 10:13:00 -- 因为是字符型,您判断的是小于大于,应该是永远得不到结果,改成这样试试:
If b1 = b2 Then MessageBox.Show("您的系统已经是最新版本,暂时不需要更新!", "提示") else |
-- 作者:卟离卟弃 -- 发布时间:2010/10/15 10:13:00 -- Tables("客户端版本号")(0)("客户端版本号") 在 客户端版本号 中输入 10 个 C
Tables("客户端版本号")(0)("客户端版本号") 在 客户端版本号 中输入 1 个 C
不知道杂回事...求解... |
-- 作者:卟离卟弃 -- 发布时间:2010/10/15 10:16:00 -- 谢谢,程版 原来如此啊 |
-- 作者:卟离卟弃 -- 发布时间:2010/10/15 10:37:00 -- 没有发布成系统时,测试登录窗口没有问题. 发布成系统后,又和一楼一模一样.......
登录窗口 AfterLoad 代码
Dim cmd As New SQLCommand [此贴子已经被作者于2010-10-15 10:38:50编辑过]
|
-- 作者:程兴刚 -- 发布时间:2010/10/15 12:06:00 -- 自动升级的几点思路,仅供大家讨论、参考: 1、其实可以将版本号改为小数型,每次升级版本号不断递加,用SQL外部数据源,保存在您的服务器(开发者专用服务器,),用户对比这个版本号的大小来升级,这里先将系统命名为system.foxdb,以便后面的介绍。 2、再另外设计一个隐藏系统主界面的.foxdb文件(这里暂且命名为update.foxdb),使update.foxdb文件仅仅显示一个模式窗口,update.foxdb文件的AfterOpenProject事件设置FTP下载指定文件的代码,通过代码下载最新的到system.foxdb到项目文件夹,覆盖旧版本的system.foxdb(如果有图片、图标等更新的附件,在这里通过代码一并下载,更新文件不能包含update.foxdb),下载完毕,通过代码关闭update.foxdb,在update.foxdb文件的BeforeCloseProject事件中设置代码提示更新完毕并打开system.foxdb文件。
主要操作思路及原理:由于不关闭system.foxdb,直接通过system.foxdb来下载覆盖,会被windows操作系统禁止覆盖,因为system.foxdb文件是打开的,所以用了一个update.foxdb来切换,作一下升级过度,update.foxdb一次设计,不需要每次更新。所以,通过system.foxdb文件手动(或自动检测:判断网络及版本号)检测网络及新的版本并提示用户更新(当网络未链接时,自动更新方式不需要提示更新),得到确认后,打开update.foxdb并关闭system.foxdb,在update.foxdb进行自动下载、覆盖完毕以后,提示更新完毕,再通过代码先打开system.foxdb并自动关闭update.foxdb,让整个升级过程完全自动进行。
由于本人暂时没有精力研究,仅做纸上谈兵,理论上应该可行(曾经用易表做的工程造价管理系统,就是按此原理进行本地数据库更新),供大家讨论参考。 [此贴子已经被作者于2010-10-15 12:14:03编辑过]
|
-- 作者:czy -- 发布时间:2010/10/15 12:24:00 -- 楼主的问题好象有点无厘头了,字符型用<>做比较是可行的,测试结果也表明是没问题的,可楼主就是不行。 发布前后发布后又不一样的结果,这让人摸不着头脑了。
|
-- 作者:czy -- 发布时间:2010/10/15 12:33:00 -- 以下是引用程兴刚在2010-10-15 12:06:00的发言:
主要操作思路及原理:由于不关闭system.foxdb,直接通过system.foxdb来下载覆盖,会被windows操作系统禁止覆盖,因为system.foxdb文件是打开的,所以用了一个update.foxdb来切换
下载完成后用CopyFile进行复制并重命名打开的项目名称是可以覆盖的,升级完成后只需syscmd.Project.Open(ProjectFile)就可以重新打开更新后的项目。 |
-- 作者:程兴刚 -- 发布时间:2010/10/15 13:54:00 -- 以下是引用czy在2010-10-15 12:33:00的发言:
下载完成后用CopyFile进行复制并重命名打开的项目名称是可以覆盖的,升级完成后只需syscmd.Project.Open(ProjectFile)就可以重新打开更新后的项目。
哦,我还没有深入研究! |
-- 作者:czy -- 发布时间:2010/10/15 14:47:00 -- 如果是sql数据源,我觉得按下面的步骤就可以了。 假设在原项目中进行升级:
\'判断是否可以升级 |