用Developer2000開發POS機程式常見問題的解決-3

lilong發表於2004-11-17
POS機的程式更新是一個很令人頭痛的問題,尤其是POS機數量比較多的時候。 [@more@]

如果手工逐個更新POS機的程式實在是太麻煩了,而且容易遺漏。要是能像其他軟體一樣可以自動檢測程式的版本,並且可以自動下載最新的更新程式就好了。

我的解決思路大致是:
1.建立一個FTP伺服器,用於儲存最新的更新程式。
2.建立一個表用於儲存最新的版本號。
3.在安裝目錄中存放一個文字檔案儲存當前的版本號。
4.在登入的時候比對文字中的版本號與伺服器資料庫中的版本號,如果不同則下載最新的程式。

登入程式的WHEN-NEW-FORM-INSTANC觸發器內容如下:
DECLARE
in_file text_io.file_type;
linebuf VARCHAR2(80);
var_ver VARCHAR2(30);
version VARCHAR2(30);
BEGIN
in_file:=text_io.fopen('version.txt','r'); --version.txt存放當前的版本號
text_io.get_line(in_file,linebuf);
var_ver:=linebuf;
text_io.fclose(in_file);
SELECT ver into var_ver from t_version; --t_version表存放最新的版本號
IF version<>var_ver THEN
SET_ALERT_PROPERTY('ALERT_SH',ALERT_MESSAGE_TEXT,'有更新的程式版本,請進行版本升級!');
IF SHOW_ALERT('ALERT_SH')=ALERT_BUTTON1 THEN
HOST('UPDATE.BAT',NO_SCREEN); --呼叫外部ftp程式
END IF;
end if;
exception
when no_data_found then
SET_ALERT_PROPERTY('ALERT_SH',ALERT_MESSAGE_TEXT,'沒有找到版本資訊,請與後臺人員聯絡!');
IF SHOW_ALERT('ALERT_SH')=ALERT_BUTTON1 THEN
NULL;
END IF;
Exit_Form(No_Validate);
end;

update.bat的作用是呼叫外部的ftp命令,內容如下:
ftp -n -i -s:update.dat

update.dat是ftp批處理檔案,內容如下:
open 192.168.0.1
user guest 123456
bin
mget *.*
disconnect
bye

以後如果有新的版本,只要修改t_version表中的版本號,同時把新程式和新的version.txt一起放在ftp伺服器的指定目錄中就可以了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18966/viewspace-780877/,如需轉載,請註明出處,否則將追究法律責任。

相關文章