如果手工逐个更新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博客 ” ,链接:https://blog.itpub.net/18966/viewspace-780877/ ,如需转载,请注明出处,否则将追究法律责任。