Syscmd.Project.Update()
执行上面的代码,系统首先检索远程升级路径中的update.txt文件,获得项目版本日期和Foxtable版本日期,和本机的项目版本日期和Foxtable版本日期进行比较,然后根据比较结果进行动作:
A、如果本机的项目版本日期大于等于update.txt中的项目版本日期,则不进行任何动作。
B、如果本机的项目版本日期小于update.txt中的项目版本日期,且本机的Foxtable版本日期等于update.txt中的Foxtable版本日期,则开始下载简化升级包update1.zip。
C、如果本机的项目版本日期小于update.txt中的项目版本日期,且本机的Foxtable版本日期不等于update.txt中的Foxtable版本日期,则开始下载完整升级包update2.zip。
升级包下载完成后,会自动解压并覆盖本机的文件,完成升级。
因为单单升级项目本身的频率会远远超过同时升级项目和运行环境的频率,所以提供两个升级包,可以让客户端的日常升级更加快捷。
至此我们的在线升级功能已经完成,即使你是一个初次接触编程的人,应该也能即时掌握。
Update的语法:
Syscmd.Project.Update(Prom1, Prom2)
Prom1: 可选参数,逻辑型,没有发现新版本时,是否提示用户。
Prom2: 可选参数,逻辑型,发现新版本时,是否提示用户升级。
例如希望自动升级能够完全"静默",发现新版本时不提示,自动开始升级,没有发现新版本时也不提示:
Syscmd.Project.Update(False,False)
如果我们在AfterOpenProject下面的代码:
Syscmd.Project.Update(False,False)
Forms("窗口1").Open() '可能会出错
目的是希望打开项目的时候自动升级,然后打开窗口1。
但是上述代码肯定会在升级成功之后提示错误,因为一旦升级成功,Foxtable就会关闭,后面的打开窗口代码就会出错。
我们可以用下面的代码避免错误:
If Syscmd.Project.Update(False,False) = False Then '如果没有升级
Forms("窗口1").open()
End If
也就是说Update执行后会返回一个逻辑值,如果升级成功,返回True,否则返回False。