999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PB客戶端軟件自動升級的設計與實現

2017-12-02 03:03:39滿洲里出入境檢驗檢疫局姜曉龍
電子世界 2017年22期
關鍵詞:程序

滿洲里出入境檢驗檢疫局 姜曉龍

PB客戶端軟件自動升級的設計與實現

滿洲里出入境檢驗檢疫局 姜曉龍

PB(PowerBuilder)應用程序的客戶端系統更新絕大多數采用本地計算機完全式安裝或拷貝式安裝進行,CS模式的程序設計在系統更新環節上確實浪費了大量的人力、物力和工作時間。本文詳細地介紹一種局域網內客戶端軟件自動升級的實現方法,它將有效地減輕客戶端程序升級工作的重荷,彌補CS結構的系統在更新任務方面的不足和缺陷。

客戶端軟件;自動升級;文件服務器;配置文件;程序版本

1.引言

在較大的CS結構的管理系統中,需求的變化、補丁的加載以及系統的升級等原因導致對客戶端應用程序的修改會帶來大量的客戶端更新工作。維護人員必須到每臺客戶機去更新安裝,這就大大加重了維護人員的工作量。在客戶端計算機數量相對較少的情況下這種情形還可以忍受,倘若局域網內存在數十臺乃至幾百臺等待更新的機器,而網絡節點分布又不集中,其工作強度將是不言而喻的。因此,實現PB客戶端軟件自動升級的必要性是毋庸置疑的,它可以充分彌補CS模式在系統升級換代方面存在的不足和缺陷。本文結合出口果蔬隨附單據無紙化報檢系統客戶端應用程序自動升級的解決方案,介紹一種局域網內可自動升級客戶端軟件的實現方法。

2.技術原理

PB客戶端應用程序實現自動升級的技術原理是在局域網內專門放置一臺文件服務器或直接使用現有的數據服務器,存放最新的應用程序文件和配置文件。啟動客戶端程序自動升級功能時,應用程序首先執行配置文件,提取相應的升級參數,即本地計算機應用程序的版本、服務器名稱或地址以及服務器保存更新文件的共享文件夾;接著根據所提取的服務器名稱或地址和共享目錄,到文件服務器下載最新應用程序的版本信息;然后比較服務器程序版本與本地程序版本,如果服務器程序版本高于本地程序版本,說明文件服務器上已存在更加新版的客戶端應用程序,則提示用戶是否對本地計算機應用程序進行更新操作,最后再運行新升級的主程序。

3.功能實現

⑴創建一個INI類型的配置文件CSUpgrade.ini,其具體內容如下:

[Options]

Version=網絡版V8.2.11.0723

//程序版本號,比較本地程序版本與服務器程序版本是否一致

Server=\10.15.10.1

//文件服務器名稱或IP地址

Folder=CSUpgrade

//存放更新文件的共享文件夾

File=CS2010.exe|CS2010.dll|DBConfig.exe|EDecl.exe

//存放應用程序文件列表并以分隔符“|”間隔

Notes=新增了流程控制、系統日志、大寫中文數字發音拼寫檢查、數據源的自動配置和OLE控件的自動注冊以及圖片按鈕和XP風格按鈕等實用功能。

//告知客戶端用戶需要更新的主要內容說明或注釋文本

⑵在用于更新提示的窗口中自定義一個函數wf_GetFileNameL-ist,用于從文件服務器提供的配置文件的文件列表中取得各個需要進行升級的文件,分別存放在一個數組中,并返回升級文件的個數。

⑶定義窗口用戶事件ue_postopen,用于比較本地程序版本與服務器程序版本是否一致。如果服務器程序版本與本地程序版本互相一致,則直接啟動系統的主程序,同時關閉自動升級窗口;如果服務器程序版本高于本地程序版本,則提取文件服務器提供的配置文件的注釋文本,以便用戶決定是否進行本地計算機應用程序的更新工作,主要程序腳本如下:

Ls_Local_INIFile=’CSUpgrade.ini’

//本地或服務器INI配置文件名稱

Ls_Local_Version=ProfileString(Ls_Local_INIFile,’Options’,’Version’,’’)

//本地應用程序版本

SELECT Server_Path,File_Folder INTO :Ls_Server,:Ls_Server_Folder FROM T_CS_Parameter;

//提取文件服務器名稱或IP地址以及共享文件夾

Ls_Server_Folder=Ls_Server + ‘’ + Ls_Server_Folder + ‘’

//設置文件服務器路徑

Ls_Server_INIFile=Ls_Server_Folder + ‘CSUpgrade.ini’

//設置文件服務器端的INI配置文件

Ls_Server_Version=ProfileString(Ls_Server_INIFile,’Options’,’Version’,’’)

//獲取文件服務器程序版本

Ls_File=ProfileString(Ls_Server_INIFile,’Options’,’File’,’’)

//獲取更新文件列表

Ls_Notes=ProfileString(Ls_Server_INIFile,’Options’,’Notes’,’’)

//獲取更新說明

IF(Ls_Server_Versiongt;Ls_Local_Version)THEN

//比較本地與服務器程序版本號

This.Show()

//顯示自動更新窗口

mle_1.text=’文件服務器存在新的版本應用程序,說明如下:~r~n”’ +Ls_Notes + ‘”~r~n您是否更新本地應用程序?’

//顯示客戶端軟件需要更新的文本說明

ELSE

Run(‘CS2010.exe’) ; Halt Close

//啟動主程序并退出自動更新窗口

END IF

⑷“更新(R)”按鈕主要實現的功能是進行自動升級程序的創建過程,自動更新過程界面效果如右圖所示。編寫如下主要腳本:

Li_FileCount=wf_getfilename(Ls_File)

//獲取文件列表并保存在Is_FileName[]數組中

L s_Text=”程序更新開始:” + String(Today(),’yyyy-mm-dd’) + ‘ ‘ +String(Now()) + ‘ ‘ + ayName(Today())

Lit_CSUpgrade_Start=CPU()

//獲取自動更新的開始時間計數

mle_1.text=Ls_Text

mle_1.text=mle_1.text + ‘~r~n’ + ‘---’ //設置分隔符,記錄自動更新過程并實時顯示

Ls_Text=’~r~n’ + String(0) + ‘、’ + “版本:” + Ls_Local_Version +“→” + Ls_Server_Version

mle_1.text=mle_1.text + Ls_Text + ‘~r~n’ + ‘---’

Li_Rtn=FileCopy(ls_Server_Folder + Ls_Local_INIFile,Ls_Local_INIFile,True)

IF(Li_Rtn=1)THEN ; Ls_Flag=’成功!’ ; ELSE ; Ls_Flag=’失敗!’ ; END IF

Ls_Text=’~r~n’ + String(1) + ‘、’ + “文件:” + Ls_Local_INIFile + ‘更新’ + Ls_Flag + String(Today(),’yyyy-mm-dd’) + ‘ ‘ + String(Now())

//更新本地計算機INI文件并標注拷貝完成時間

mle_1.text=mle_1.text + Ls_Text

FOR i = 1 TO Li_FileCount

//依次更新程序文件

Li_Rtn=FileCopy(ls_Server_Folder + Is_FileName[i],Is_FileName[i],True)

IF(Li_Rtn=1)THEN ; Ls_Flag=’成功!’ ; ELSE ; Ls_Flag=’失敗!’ ; END IF

Ls_Text=’~r~n’ + String(i+1) + ‘、’ + “文件:” + Is_FileName[i] + ‘更新’+ Ls_Flag + String(Today(),’yyyy-mm-dd’) + ‘ ‘ + String(Now())

//更新本地計算機程序文件并標注拷貝完成時間

mle_1.text=mle_1.text + Ls_Text

mle_1.Scroll(i * 2)

//滾動系統當前光標位置

NEXT

UPDATE T_CS_Parameter SET Programme_Edition = :Ls_Server_Version;

//更新客戶端的最新顯示版本

mle_1.text=mle_1.text + ‘~r~n’ + ‘---’

Ls_Text=”程序更新完畢:” + String(Today(),’yyyy-mm-dd’) + ‘ ‘ +String(Now()) + ‘ ‘ + DayName(Today())

SetProfileString(Ls_Local_INIFile,’Options’,’File’,’’)

SetProfileString(Ls_Local_INIFile,’Options’,’Notes’,’’)

Lit_CSUpgrade_End=CPU()

//獲取自動更新的結束時間計數

Ls_Text=Ls_Text + ‘ ‘ + String(Round(Long((Lit_CSUpgrade_End - Lit_CSUpgrade_Start) * 0.001),3))

mle_1.text=mle_1.text + Ls_Text

//統計自動更新用時并顯示自動更新全部日志

⑸當服務器程序更新時,技術人員只需將配置文件CSUpgrade.ini和最新版本的程序存放到文件服務器的配置文件的Folder項指定的目錄,并修改CSUpgrade.ini文件的程序版本號(Version)、需要更新的文件列表(File)和升級注解(Notes)等各項內容即可,但必須保證服務器程序的版本號高于客戶端程序的版本號。

⑹實現圖標欄隱式運行升級任務。圖標欄的應用為客戶端軟件的自動升級增光添色,它可以實現完全隱藏的運行升級程序窗口。系統自動升級窗口運行后,在Windows操作系統的圖標欄中顯示該應用程序的圖標。根據提取到的升級參數比較兩地程序的版本,當服務器程序版本與本地程序版本一致時,直接調用系統的主程序并關閉自動升級提示窗口;而當服務器程序版本高于本地程序版本時,彈出自動更新窗口并顯示升級程序的文本注釋。

4.結束語

PB客戶端軟件自動升級技術已經在各類檢驗檢疫輔助通關系統中成功應用,系統更新時發揮出的作用特別明顯,可以使客戶端的更新工作在本地計算機自動完成,無需維護人員到每臺客戶機去更新安裝,從而最大限度地減少了維護的工作量,提高了技術人員的工作效率。

[1]柯建勛,張濤,邵亮編著.PowerBuilder9.0實例與技巧[M].北京:清華大學出版社,2003.

[2]侯志平,等.編著.PowerBuilder6.0參考手冊[M].北京:曉通數據庫研究與發展中心,2001.

姜曉龍(1977-),男,高級工程師,計算機數據庫應用程序設計與開發。

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 免费一级无码在线网站| 777午夜精品电影免费看| 精品無碼一區在線觀看 | 午夜无码一区二区三区| 久久黄色影院| 九九线精品视频在线观看| 亚洲开心婷婷中文字幕| 99久久免费精品特色大片| 天堂av综合网| 无码精品国产VA在线观看DVD| 在线免费观看a视频| 1级黄色毛片| 一本大道香蕉中文日本不卡高清二区 | 亚洲欧美天堂网| 国产又黄又硬又粗| 在线观看国产小视频| 日韩亚洲综合在线| 精品国产成人a在线观看| 亚洲日韩国产精品综合在线观看| 色综合a怡红院怡红院首页| 国产精品久久久久久久久| 亚洲欧美综合在线观看| 成年看免费观看视频拍拍| 精品国产一二三区| 成人综合久久综合| 欧美日韩国产系列在线观看| 71pao成人国产永久免费视频| 91精品久久久久久无码人妻| 国产视频大全| 色综合五月| 免费国产在线精品一区| 蜜芽国产尤物av尤物在线看| 亚洲精品另类| 国产免费福利网站| 国产成人一区| 在线永久免费观看的毛片| 久久青草热| 亚洲天堂2014| m男亚洲一区中文字幕| 丁香六月激情婷婷| 国产99视频精品免费视频7| 精品视频在线观看你懂的一区| 国产一区二区三区免费| 波多野结衣在线se| 久久综合色视频| 欧美成人精品一级在线观看| 亚洲欧美日韩成人在线| 园内精品自拍视频在线播放| 欧美中日韩在线| 欧美视频免费一区二区三区| 丁香婷婷综合激情| 亚洲男人在线天堂| 九九线精品视频在线观看| 丁香亚洲综合五月天婷婷| 免费一级α片在线观看| 热久久国产| 一本视频精品中文字幕| 一区二区无码在线视频| 国产免费福利网站| 少妇人妻无码首页| 国产精品综合久久久| 激情无码字幕综合| 在线观看国产黄色| 中日韩一区二区三区中文免费视频 | 一区二区偷拍美女撒尿视频| 无码专区在线观看| 亚洲中文字幕无码爆乳| 中文字幕天无码久久精品视频免费 | 亚亚洲乱码一二三四区| 成人在线欧美| www精品久久| 午夜无码一区二区三区| 国产精品毛片一区| 97超碰精品成人国产| 久久黄色小视频| 中文字幕啪啪| 国产欧美精品一区aⅴ影院| 99精品一区二区免费视频| 国产91小视频| 国产综合亚洲欧洲区精品无码| 中文国产成人精品久久| 91免费精品国偷自产在线在线|