PB自动升级的实现

本文介绍Sync.exe的应用场景,尤其适用于多用户系统中的程序发布与升级。Sync.exe能够自动比较并同步本地与远程服务器上的文件差异,减少手动操作,提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sync.exe运行时的界面

Synchronizer简称Sync
如果你正在开发一个多用户系统,例如pb/vb/delphi开发的MIS系统,需要在客户端安装exe,dll,并且处于频繁的修改/升级/修改/升级....,用Sync将极大减轻发布最终程序的工作量,你不必为了每次升级或修正错误,而在每台电脑上跑来跑去升级/复制文件,还要担心某台因为忘记升级新程序而导致版本不一致, 最终功能失效或导致数据有差错.

Sync是PowerBuilder 6.5带的一个由Sybase开发的ActiveX
c:/program files/sybase/pb6/sync目录下,sync.ocx在/windows/system目录下


或直接从PB 6.5的工具栏进入sync.exe界面
(如果没有安装pb没关系,本站提供下载,请见下方)

sync体积非常小,只有60多KB

sync有几个重要功能可以满足以上要求:

1.自动比较本机文件和指定路径(可以是网络服务器)或ftp服务器中文件的不同

2.自动复制(从指定路径或网络路径unc)或下载(从ftp服务器)

3.比较文件基于三种方式,文件修改日期/时间,文件尺寸,文件版本(版本只对于标准EXE或DLL才有效),例如VB在编译为最终EXE的时候可以选择版本号,PB的EXE就无此功能.

4.提供二种方式给最终程序调用:
  ActiveX(除通常这些pb/vb/delphi/vc,还可用于Html页面),
  syncCRT.EXE, 直接调用此exe和Synchronizer定义文件完成更新
5.提供sync.exe来定义需要同步的文件,生成最终(.syc文件),你无需在程序中逐个定义需要同步的文件,只需利用sync.exe,使用图形界面定义每个需要同步文件名.(同时还可以在一个syc文件中直接嵌入多个syc文件)


调用非常方便
pb的调用方式:
Ole_1.object.SyncFileName = "exam.syc" 此文件可用sync.exe生成,非常简单,选择源文件和目标文件,这样Execute的时候就会自动检查源文件和目标文件,不同即会自动copy.
ole_1.object.Execute()

更多使用方法可以查询sync60.hlp, 还可以设置是否显示同步过程,对于文件较大,copy时间比较长的,建议显示,以免用户以为死机. 

C/S程序自动升级是一个很重要的功能,原理其实很简单,一般包含两个程序一个是主程序,也就是除了升级功能以外的程序 主要包括以下几点:   1 比较版本  2下载文件  3更新文件 4启动主程序。但其中的需要注意的细节很多。      一般服务端会有一个配置文件包含最新更新的文件信息的配置文件,当然这些更新信息也可以存到数据库,或者其他地方。客户端(也就是需要更新的那部分程序)也有一个配置文件包含客户端版本信息,这些信息可以存到专门的一个配置文件中,或者是config文件中,没有一定的规定,可以根据实际设计。    在客户端程序启动时,先启动更新程序通过比较本地版本和服务端最新的版本信息判断是否有新版本,如果有可以直接下载,下载完成替换成功后并更新客户端版本信息,启动主程序。             缺点:如果更新速度由于更新的文件很大或者网速很慢,用户不得不等待很长时间,直到下载完成或者下载失败。             优点:处理完成后,启动的直接就是更新后的程序。不会出现由于主程序在运行导致替换文件时提示文件在使用,不能替换之类的错误。    另一种方法是, 在客户端段程序启动时,启动更新程序,但更新程序不做版本判断,到客户端更新目录下检查有没有下载的新版本,如果有就更新主程序并更新客户端版本信息,然后启动主程序,如果没有就直接启动主程序。由主程序判断是否有新版本,并在后台下载把文件放到客户端更新目录中,下载完成后,提示用户退出主程序,重新启动,在启动时由更新程序并更新客户端和客户端版本信息。                 缺点:由于下载是在主程序的后台运行,可能会影响主程序的处理速度。             优点:避免了由于下载导致用户长时间的等待。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值