📄 restoredata.~pas
字号:
unit restoredata;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, basepop, TFlatButtonUnit, TFlatEditUnit, StdCtrls,Math,StrUtils,
DB, DBTables,Registry, TFlatGaugeUnit, ActnList, ComCtrls, jpeg, ExtCtrls,
ztvregister, ztvBase, ztvUnZip;
const cLicenseString = '17055475153342401579512r612895AS';
type
Trestoredata_frm = class(Tbasepop_frm)
M_list: TMemo;
M_info: TMemo;
Label1: TLabel;
FE_filename: TFlatEdit;
FB_fileselect: TFlatButton;
FB_restore: TFlatButton;
FB_close: TFlatButton;
OpenDialog1: TOpenDialog;
FlatGauge1: TFlatGauge;
ActionList1: TActionList;
help: TAction;
FB_help: TFlatButton;
GroupBox3: TGroupBox;
Panel1: TPanel;
Image1: TImage;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Memo3: TMemo;
P_restore: TPanel;
TabSheet2: TTabSheet;
Label2: TLabel;
UnZip: TUnZip;
procedure FB_closeClick(Sender: TObject);
procedure FB_restoreClick(Sender: TObject);
procedure FB_fileselectClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
{procedure helpExecute(Sender: TObject);}
private
{ Private declarations }
procedure DelRestoreFile();
function GetFieldName(Query:TQuery;SQLstr:widestring):widestring;
{procedure PrepareProc();
procedure DeleteData(tabname:string);
procedure CparchRestore();
procedure OrganizationRestore();
procedure OrganmapRestore();
procedure PsarchRestore();
procedure HomeinfoRestore();
procedure PactinfoRestore();
procedure StudyinfoRestore();
procedure TraiinfoRestore();
procedure WorkinfoRestore();
procedure PsupcaseRestore();
procedure PswgcaseRestore();
procedure InfoctorRestore();
procedure ManpayRestore();
procedure PycpmainRestore();
procedure PycpselRestore();
procedure PystpRestore();
procedure RefetabRestore();
procedure PytbmtRestore();
procedure UsersRestore(); }
//procedure UserrightRestore();
//procedure UnitrightRestore();
public
{ Public declarations }
end;
{function XceedZipInitDLL : LongInt; stdcall; external 'XceedZip.DLL';
function XceedZipShutdownDLL : LongInt; stdcall; external 'XceedZip.DLL';
function XzCreateXceedZipA( pszLicense : PChar) : LongInt; stdcall; external 'XceedZip.DLL';
procedure XzSetZipFilenameA( hZip : LongInt; pszValue : PChar); stdcall; external 'XceedZip.DLL';
procedure XzSetProcessSubfolders( hZip : LongInt; bValue : LongInt ); stdcall; external 'XceedZip.DLL';
procedure XzSetEncryptionPasswordA(hZip:LongInt;pwd:PChar); stdcall; external 'XceedZip.DLL';
procedure XzSetUnzipToFolderA( hZip : LongInt; pszValue : PChar); stdcall; external 'XceedZip.DLL';
procedure XzDestroyXceedZip( hZip : LongInt ); stdcall; external 'XceedZip.DLL';
function XzUnzip( hZip : LongInt ) : LongInt; stdcall; external 'XceedZip.DLL'; }
var
restoredata_frm: Trestoredata_frm;
implementation
uses datashare, main, commlist, basedialog,hh, imp;
{$R *.dfm}
function Trestoredata_frm.GetFieldName(Query:TQuery;SQLstr:widestring):widestring;
var
i:integer;
str:widestring;
begin
with Query do
begin
close;
sql.Clear ;
sql.Add(sqlstr);
open;
str:='';
for i:=0 to FieldCount-1 do
if str='' then str:=Fields[i].FieldName else str:=str+','+Fields[i].FieldName ;
close;
end;
Result:=str;
end;
procedure Trestoredata_frm.DelRestoreFile();
var
d:widestring;
begin
d:=copy(extractfilepath(application.ExeName),1,length(extractfilepath(application.ExeName))-1);
if fileexists(d+'\importfile\ESIIS.DB') then
deletefile(d+'\importfile\ESIIS.DB');
if fileexists(d+'\importfile\ESIIS.LOG') then
deletefile(d+'\importfile\ESIIS.LOG');
if fileexists(d+'\importfile\ESIIS.MLG') then
deletefile(d+'\importfile\ESIIS.MLG');
end;
procedure Trestoredata_frm.FB_closeClick(Sender: TObject);
begin
inherited;
close;
end;
procedure Trestoredata_frm.FB_restoreClick(Sender: TObject);
var
password:widestring;
hUnZip:integer;
registerTemp:TRegistry;
ls_value,d:widestring;
b1,b2,b3:bool;
sqlstr:widestring;
begin
inherited;
d:=extractfilepath(application.ExeName);
if trim(FE_filename.Text)='' then
begin
application.MessageBox('请选择指定文件!','恩普软件',MB_OK+MB_IconInformation+MB_SystemModal);
FE_filename.SetFocus;
exit;
end;
if not fileexists(trim(FE_filename.Text)) then
begin
application.MessageBox('指定的文件不存在!','恩普软件',MB_OK+MB_IconInformation+MB_SystemModal);
FE_filename.SetFocus;
exit;
end;
try
cursor:=crhourglass;
if not directoryexists(d+'importfile\') then createdir(d+'importfile');
deleteall(d+'importfile\');
unzip.ArchiveFile :=fe_filename.Text ;
unzip.ExtractDir :=d+'importfile\';
unzip.Password :='esiis123';
unzip.FileSpec.Add('*.*');
unzip.Extract;
d:=d+'importfile\' ;
with DataShare_frm do
begin
Dbs.StartTransaction ;
P_restore.Visible :=true;
sqlstr:='select * from sbda_psagacct where 1=2';
FlatGauge1.Progress :=10;
imp_sbda_psagacct(d+'sbda_psagacct.txt','sbda_psagacct',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'sbda_psagacct','');
sqlstr:='select * from sbda_psrtacct where 1=2';
FlatGauge1.Progress :=15;
imp_sbda_psrtacct(d+'psrtacct.txt','sbda_psrtacct',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'sbda_psrtacct','');
sqlstr:='select * from sbdb_cparch where 1=2';
FlatGauge1.Progress :=20;
imp_sbdb_cparch(d+'sbdb_cparch.txt','sbdb_cparch',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'sbdb_cparch','');
sqlstr:='select * from SBDB_PSARCH where 1=2';
FlatGauge1.Progress :=25;
imp_sbdb_psarch(d+'sbdb_psarch.txt','sbdb_psarch',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'SBDB_PSARCH','');
sqlstr:='select * from sbdb_rtarch where 1=2';
FlatGauge1.Progress :=30;
imp_sbdb_rtarch(d+'sbdb_rtarch.txt','sbdb_rtarch',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'sbdb_rtarch','');
sqlstr:='select * from sbdb_rtwage where 1=2';
FlatGauge1.Progress :=35;
imp_sbdb_rtwage(d+'sbdb_rtwage.txt','sbdb_rtwage',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'sbdb_rtwage','');
sqlstr:='select * from SBDC_CPATTR where 1=2';
FlatGauge1.Progress :=40;
imp_sbdc_pyitem(d+'sbdc_cpattr.txt','sbdc_cpattr',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'SBDC_CPATTR','');
sqlstr:='select * from SBDC_DEPT where 1=2';
FlatGauge1.Progress :=45;
imp_sbdc_pyitem(d+'sbdc_dept.txt','sbdc_dept',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'SBDC_DEPT','');
sqlstr:='select * from SBDC_ECMODE where 1=2';
imp_sbdc_pyitem(d+'sbdc_ecmode.txt','sbdc_ecmode',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'SBDC_ECMODE','');
sqlstr:='select * from sbdc_pyitem where 1=2';
imp_sbdc_pyitem(d+'sbdc_pyitem.txt','sbdc_pyitem',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'sbdc_pyitem','');
sqlstr:='select * from SBDC_SUBJ where 1=2';
imp_sbdc_pyitem(d+'sbdc_subj.txt','sbdc_subj',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
sqlstr:='select * from SBDC_TRADE where 1=2';
imp_sbdc_pyitem(d+'sbdc_trade.txt','sbdc_trade',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'SBDC_TRADE','');
{sqlstr:='select * from SBDC_TRADE';
export_data(DataShare_frm.Query1,sqlstr,'SBDC_TRADE','');}
sqlstr:='select * from SBDS_INANCONS where 1=2';
imp_sbdc_pyitem(d+'sbds_inancons.txt','sbds_inancons',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'SBDS_INANCONS','');
sqlstr:='select * from SBDS_INCONS where 1=2';
imp_sbdc_pyitem(d+'sbds_incons.txt','sbds_incons',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'SBDS_INCONS','');
sqlstr:='select * from SBDU_PSWGCASE where 1=2';
FlatGauge1.Progress :=50;
imp_sbdu_pswgcase(d+'sbdu_pswgcase.txt','sbdu_pswgcase',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
sqlstr:='select * from SBDZ_HTARCH where 1=2';
FlatGauge1.Progress :=55;
imp_sbdz_htarch(d+'sbdz_htarch.txt','sbdz_htarch',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'SBDZ_HTARCH','');
sqlstr:='select * from SBDZ_PSAGACCT where 1=2';
FlatGauge1.Progress :=60;
imp_sbda_psagacct(d+'sbdz_psagacct.txt','sbdz_psagacct',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'SBDZ_PSAGACCT','');
sqlstr:='select * from SBDZ_PSPAUSE where 1=2';
FlatGauge1.Progress :=65;
imp_sbdz_htarch(d+'sbdz_pspause.txt','sbdz_pspause',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'SBDZ_PSPAUSE','');
sqlstr:='select * from SBDZ_PSWGCASE where 1=2';
FlatGauge1.Progress :=70;
imp_sbdz_pswgcase(d+'sbdz_pswgcase.txt','sbdz_pswgcase',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'SBDZ_PSWGCASE','');
sqlstr:='select * from SBDZ_RTACCT where 1=2';
FlatGauge1.Progress :=70;
imp_sbdz_pswgcase(d+'sbdz_rtacct.txt','sbdz_rtacct',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//export_data(DataShare_frm.Query1,sqlstr,'SBDZ_RTACCT','');
sqlstr:='select * from USERS where 1=2';
FlatGauge1.Progress :=75;
imp_users(d+'users.txt','users',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
sqlstr:='select * from Account_Moving where 1=2';
FlatGauge1.Progress :=80;
//imp_sbda_psagacct(d+'Account_Moving.txt','Account_Moving',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
imp_sbdz_htarch(d+'Account_Moving.txt','Account_Moving',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
sqlstr:='select * from sbdz_InEsiis where 1=2';
imp_sbdz_htarch(d+'sbdz_InEsiis.txt','sbdz_InEsiis',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
sqlstr:='select * from sbdz_rtwage where 1=2';
FlatGauge1.Progress :=85;
Imp_sbdb_rtwage(d+'sbdz_rtwage.txt','sbdz_rtwage',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
//imp_sbdz_htarch(d+'sbdz_rtwage.txt','sbdz_rtwage',chr(9),getfieldname(Query1,sqlstr),Query2,Query3);
FlatGauge1.Progress :=90;
DBs.Commit ;
//export_data(DataShare_frm.Query1,sqlstr,'USERS','');
end;
except
DataShare_frm.Dbs.Rollback ;
//deleteall(d);
deleteall(d+'importfile\');
cursor:=crdefault;
application.MessageBox('数据恢复出现异常!','恩普软件',mb_iconerror+mb_ok);
exit;
end;
deleteall(d);
FlatGauge1.Progress :=100;
cursor:=crdefault;
application.MessageBox('数据恢复成功!','恩普软件',mb_iconinformation+mb_ok);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -