用pb实现cs应用程序的自动升级.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用pb实现cs应用程序的自动升级.doc

用PB实现C/S应用程序的自动升级 黄石纺织机械厂信息中心 黄新民 2007.9.5 C/S模式的应用程序安装在客户端,一旦程序改动升级,更换应用程序的工作量大。但由于它与B/S模式相比具有交互能力强、运行速度快的优点,目前在企业管理内部的ERP等应用中还是得到比较广泛的应用。 企业的信息化是一个长期的、不断进步的过程,所以应用程序的修改和升级也是经常发生的。目前企业的信息化应用都达到一定的规模,客户端的数量至少也在几十台以上。一旦对应用程序进行修改,及时地更换客户端应用程序的工作量是很大的。怎样在C/S模式下实现应用程序的自动升级呢?下面介绍一种PB开发的应用程序实现自动升级的方法。 自动升级的核心是在应用程序的启动程序段加入判别版本信息的代码,版本有效就直接进入应用系统,否则进行升级。实现这种自动升级的过程比较简单: 将当前应用程序变为过时的旧版 在数据库中建立一个版本信息表bbxx,表的结构包含系统名(xtname)和版本号(bbh)两个字段,例如 xtname bbh 采购管理 2007.9.2A 仓储管理 2007.8.30B 技术数据管理 2007.8.30A 物料需求计划管理 2007.9.3A …… …… 在应用程序建立与数据库的连接后,查询数据库当前应用子系统的版本号,与应用程序记录的版本号信息进行比较,若相同则正式运行应用程序;不同则进行版本的自动更新。采用这种方法的优点是能及时地停止所有客户端旧版应用程序的运行,从而保证不会出现由于旧版更换不及时而造成的数据混乱。 确定当前应用程序所在的位置 应用程序在客户端安装的位置可能各不相同,确定其在客户端的安装位置才能保证新程序的正确替换。 自动建立网络资源,连接网络内新版应用程序所在的目录,拷贝新文件 在网络内确定一台计算机,并设定一个放置新版pbd文件的共享文件夹。 在应用程序应用的Open事件中编写代码,建立网络资源,连接到共享文件夹,复制新文件。 断开网络资源 重新登陆进入新版应用程序 在PB中实现上述过程的详细步骤: 声明外部函数 FUNCTION Long WNetAddConnection2 ( REF NETRESOURCE lpNetResource, String lpPassword, String lpUserName, Long dwFlags) LIBRARY mpr.dll ALIAS FOR WNetAddConnection2A FUNCTION Long WNetCancelConnection2 (String lpName, Long dwFlags,Long fForce) LIBRARY mpr.dll ALIAS FOR WNetCancelConnection2A 2. 建立结构 netresource 如下: long dwscope long dwtype long dwdisplaytype long dwusage string lplocalname string lpremotename string lpcomment string lpprovider 3. 假设当前系统为采购管理子系统,在其应用的Open事件写入代码: // 建立与数据库的连接 ------------- …… connect USING SQLCA; if sqlca.sqlcode 0 then messagebox(提示, 不能连接数据库!) halt end if // ---------------------------------------- string bbh1 select bbh into :bbh1 from hsfj.bbxx where xtname = 采购管理; //得到当前有效的版本号 if bbh1=2007.9.2A then // 每次修改结束编译新的可执行文件前,将数据库的版本信息表的版本号字段改为新值,同时修改此处引号内的值与其一致。编译完成后将新文件复制到网络中用于发布新文件的计算机的共享文件夹中。 open(w_main) // 进入应用系统 else messagebox(提示,不是最新版本!) string currentdir, filename int c1,c2,c3 // 确定当前目录 ------------------------------ currentdir=GetCurrentDirectory() if pos(currentdir,桌面)0 then messagebox(警告,快捷方式的起始位置不对,不能升级!请找系统管理员) return end if // -------

您可能关注的文档

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档