unit u_sys_update_net; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls, DB, ADODB,inifiles, StdCtrls,ShellApi; type Tfrm_sys_update_net = class(TForm) Animate1: TAnimate; Panel1: TPanel; t_sys_soft_do: TADOQuery; t_sys_soft_doDSDesigner: TStringField; t_sys_soft_doDSDesigner2: TBlobField; t_sys_soft_doDSDesigner1: TStringField; t_sys_soft_doDSDesigner22: TStringField; t_sys_soft_doDSDesigner3: TStringField; RichEdit1: TMemo; p_update: TADOStoredProc; t_sys_soft_update: TADOQuery; db_update: TADOConnection; t_sql: TADOQuery; t_readme: TADOQuery; procedure FormShow(Sender: TObject); procedure db_updateBeforeConnect(Sender: TObject); private { Private declarations } public { Public declarations } end; var frm_sys_update_net: Tfrm_sys_update_net; implementation uses u_main, my_sys_function, u_sys_update, my_sys_chat; {$R *.dfm} procedure Tfrm_sys_update_net.FormShow(Sender: TObject); var table:Tadoquery; inifile1:Tinifile; str:string; j:integer; if_add:boolean; if_error:boolean; begin try if not DirectoryExists(ExtractFilePath(Application.ExeName)+'update') then CreateDir(ExtractFilePath(Application.ExeName)+'update'); frm_main.Hide; table:=Tadoquery.Create(application); table.Connection:=frm_main.db; table.SQL.text:='select 版本号,版本1,版本2,版本3 from t_sys_soft'; table.open; j:=strtoint(table.fieldbyname('版本1').asstring)*10000 +strtoint(table.fieldbyname('版本2').asstring)*100 +strtoint(table.fieldbyname('版本3').asstring); Panel1.Caption:='软件下载中...'; update_soft_down; Panel1.Caption:='软件升级中...'; inifile1:=Tinifile.Create(ExtractFilePath(application.ExeName)+'update\'+'版本号.ini'); str:=inifile1.ReadString('版本号','版本1',''); str:=str+inifile1.ReadString('版本号','版本2',''); str:=str+inifile1.ReadString('版本号','版本3',''); inifile1.Free; t_sql.close; t_sql.Parameters.ParamByName('版本号').value:=j; t_sql.open; t_readme.close; t_readme.Parameters.ParamByName('版本号').value:=j; t_readme.open; t_sys_soft_update.open; t_sql.first; while not t_sql.eof do begin try p_update.Parameters.ParamByName('SQLStr').value:=t_sql.fieldbyname('执行').asstring; p_update.ExecProc; except frm_sys_update.t_sys_soft_error.insert; frm_sys_update.t_sys_soft_error['针对版本']:=j; frm_sys_update.t_sys_soft_error['升级日期']:=date; frm_sys_update.t_sys_soft_error['升级人']:=employee; frm_sys_update.t_sys_soft_error['执行文件']:=t_sql.fieldbyname('执行').asstring; frm_sys_update.t_sys_soft_error.post; if_error:=true; end; t_sql.next; end; t_readme.first; while not t_readme.eof do begin t_sys_soft_update.insert; t_sys_soft_update['版本号']:=copy(t_readme.fieldbyname('版本号').asstring,1,1) +'.'+copy(t_readme.fieldbyname('版本号').asstring,2,2) +'.'+copy(t_readme.fieldbyname('版本号').asstring,4,2); t_sys_soft_update['升级说明']:=t_readme.fieldbyname('更新说明').asstring; t_sys_soft_update['升级日期']:=date; t_sys_soft_update.post; t_readme.next; end; t_sys_soft_do.close; t_sys_soft_do.open; if_add:=true; while if_add do begin try t_sys_soft_do.edit; t_sys_soft_do['版本号']:=copy(str,1,1)+'.'+copy(str,2,2)+'.'+copy(str,4,2); t_sys_soft_do['版本1']:=copy(str,1,1); t_sys_soft_do['版本2']:=copy(str,2,2); t_sys_soft_do['版本3']:=copy(str,4,2); t_sys_soft_doDSDesigner2.LoadFromFile(ExtractFilePath(Application.ExeName)+'update\'+'鑫海达航运物流管理系统.zip'); t_sys_soft_do.Post; if_add:=false; except sleep(1000); end; end; if if_error then showmessage('软件升级过程中产生错误,请登陆软件进行修复!!'); if update_soft_banben_bendi(frm_main.db) then begin SendMsg_gonggao('52','软件系统已经升级,请退出重新登陆新版本!!'); ShellExecute(Application.Handle,nil,PChar(ExtractFilePath(Application.ExeName)+'update.exe'),nil,nil,SW_NORMAL); application.Terminate; end; finally table.free; end; end; procedure Tfrm_sys_update_net.db_updateBeforeConnect(Sender: TObject); begin db_update.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=' +ExtractFilePath(Application.ExeName)+'update\update.mdb;' +'Mode=Share Deny None;Extended Properties="";' +'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";' +'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;' +'Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;' +'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";' +'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;' +'Jet OLEDB:Don'+''''+'t Copy Locale on Compact=False;' +'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False'; end; end.