📄 u_saveorrestore.pas
字号:
unit U_SaveOrRestore;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, ComCtrls,Adodb,DB, ExtCtrls;
const
bProvider='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False;Jet OLEDB:Database Password=zhangzhifang1981';
type
TFrm_SaveOrRestore = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Label2: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
SpeedButton1: TSpeedButton;
Label1: TLabel;
Edit2: TEdit;
Button3: TButton;
Button4: TButton;
SpeedButton2: TSpeedButton;
Open1: TOpenDialog;
Save1: TSaveDialog;
Panel1: TPanel;
procedure Button2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
adRconn:TADOConnection;
appPath:String;
procedure backup1(adcon:TADOConnection);
procedure backup2(adcon:TADOConnection);
procedure backup3(adcon:TADOConnection);
procedure backup4(adcon:TADOConnection);
procedure backup5(adcon:TADOConnection);
procedure backup6(adcon:TADOConnection);
procedure backup7(adcon:TADOConnection);
procedure Restore1(adcon:TADOConnection);
procedure Restore2(adcon:TADOConnection);
procedure Restore3(adcon:TADOConnection);
procedure Restore4(adcon:TADOConnection);
procedure Restore5(adcon:TADOConnection);
procedure Restore6(adcon:TADOConnection);
procedure Restore7(adcon:TADOConnection);
public
{ Public declarations }
end;
var
Frm_SaveOrRestore: TFrm_SaveOrRestore;
implementation
uses Undm, UnFuntion;
{$R *.dfm}
procedure TFrm_SaveOrRestore.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TFrm_SaveOrRestore.SpeedButton1Click(Sender: TObject);
begin
try
Save1.Filter:='点检备份文件(*.xdj)|*.xdj|Oracle文件|*.dmp|所有文件|*.*';
if Save1.Execute then
begin
edit1.Text:=Save1.FileName;
end;
except
ShowMessage('备份出错!');
end;
end;
procedure TFrm_SaveOrRestore.SpeedButton2Click(Sender: TObject);
begin
try
Open1.Filter:='点检备份文件(*.xdj)|*.xdj|Oracle文件|*.dmp|所有文件|*.*';
if Open1.Execute then
begin
edit2.Text:=Open1.FileName;
end;
except
ShowMessage('恢复出错!');
end;
end;
procedure TFrm_SaveOrRestore.Button1Click(Sender: TObject);
var
BadoConn:TADOConnection;
str:String;
begin
if Edit1.Text='' then Exit;
if Pos('.',edit1.Text)<=0 then str:=Edit1.Text+'.xdj'
else str:=Edit1.Text;
edit1.Text:=str;
if not FileExists(appPath+'plugin\'+'djbk') then begin
Application.MessageBox('对不起,系统文件已破坏,请重新安装原程序!','提示',MB_OK+MB_ICONINFORMATION);
exit;
end;
if FileExists(str) then
begin
if MessageBox(self.Handle,'文件已存在,你真的想覆盖原文件么?','备份提示',MB_YESNO+MB_ICONQUESTION)=idno then
Exit
else
DeleteFile(str);
end;
CopyFile(pchar(appPath+'plugin\'+'djbk'),pchar(edit1.Text),true);//备份文件
BadoConn:=TADOConnection.Create(self); BadoConn.LoginPrompt:=false;
BadoConn.ConnectionString:=Format(bProvider,[edit1.Text]);
panel1.Visible:=True;
Panel1.Caption:='正在备份数据.........';
Panel1.Align:=alClient;
try
BadoConn.Connected:=True;
backup1(BadoConn);
backup2(BadoConn);
backup3(BadoConn);
try
backup4(BadoConn);
except end;
backup5(BadoConn);
backup6(BadoConn);
try
backup7(BadoConn);
except
end;
BadoConn.Connected:=False;
Application.MessageBox('数据备份成功!','提示');
except
Application.MessageBox('数据备份失败!','提示');
BadoConn.Free;
end;
Panel1.Visible:=False;
end;
//t_part,t_eupet,t_checkpt,t_employee,t_dept,t_perplan,t_bdata
procedure TFrm_SaveOrRestore.Button3Click(Sender: TObject);
var
BadoConn:TADOConnection;
str:string;
begin
if Edit2.Text='' then Exit;
if Pos('.',edit2.Text)<=0 then str:=Edit2.Text+'.xdj' else str:=Edit2.Text;
if not FileExists(str) then exit;
edit2.Text:=str;
BadoConn:=TADOConnection.Create(self); BadoConn.LoginPrompt:=false;
BadoConn.ConnectionString:=Format(bProvider,[edit2.Text]);
panel1.Visible:=True;
Panel1.Caption:='正在恢复数据.........';
Panel1.Align:=alClient;
try
BadoConn.Connected:=True;
Restore1(BadoConn);
Restore2(BadoConn);
Restore3(BadoConn);
Restore4(BadoConn);
Restore5(BadoConn);
Restore6(BadoConn);
Restore7(BadoConn);
BadoConn.Connected:=False;
Application.MessageBox('恢复数据成功!','提示');
except
Application.MessageBox('恢复备份失败!','提示');
BadoConn.Free;
end;
Panel1.Visible:=False;
end;
procedure TFrm_SaveOrRestore.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;Frm_SaveOrRestore:=nil;
end;
procedure TFrm_SaveOrRestore.FormCreate(Sender: TObject);
begin
appPath:=ExtractFilePath(ParamStr(0));//+'plugin\';
adRconn:=TADOConnection.Create(self); adRconn.LoginPrompt:=False;
adRconn.ConnectionString:=Connstr;
adRconn.Connected:=True;
end;
procedure TFrm_SaveOrRestore.backup1(adcon:TADOConnection);
var
bAdoQ:TADOQuery;
begin
bAdoQ:=TADOQuery.Create(Self);
bAdoQ.Connection:=adcon;
bAdoQ.SQL.Clear;
bAdoQ.SQL.Text:='delete from T_employee';
bAdoQ.ExecSQL;
badoq.SQL.Text:='select * from T_employee';
bAdoQ.Open;
try Screen.Cursor:=crHourGlass;
adcon.BeginTrans;
with dm.AdoQback do
begin
dm.AdoQback.Connection:=DM.AdoConn;
SQL.Text:='select * from T_employee' ;
Prepared:=True;
Open;
{bAdoQ.Append;
badoq.FieldByName('No').AsString:='0001';
badoq.FieldByName('UserName').AsString:='Admin';
badoq.FieldByName('Password').AsString:='123';
badoq.FieldByName('Purview').AsInteger:=1;
badoq.FieldByName('deptNo').AsString:='';
badoq.FieldByName('Prefession').AsString:='';
badoq.FieldByName('ReMark').AsString:='';
badoq.FieldByName('PlanNo').AsString:='';
badoq.FieldByName('Purview2').AsString:='高级用户';
badoq.UpdateRecord;
badoq.Refresh; }
while not Eof do begin
application.ProcessMessages;
bAdoQ.Append;
badoq.FieldByName('No').AsString:=FieldByName('No').AsString;
badoq.FieldByName('UserName').AsString:=FieldByName('UserName').AsString;
badoq.FieldByName('Password').AsString:=FieldByName('Password').AsString;
badoq.FieldByName('Purview').AsInteger:=FieldByName('Purview').AsInteger;
badoq.FieldByName('deptNo').AsString:=FieldByName('deptNo').AsString;
badoq.FieldByName('Prefession').AsString:=FieldByName('Prefession').AsString;
badoq.FieldByName('ReMark').AsString:=FieldByName('ReMark').AsString;
badoq.FieldByName('PlanNo').AsString:=FieldByName('PlanNo').AsString;
badoq.FieldByName('Purview2').AsString:=FieldByName('Purview2').AsString;
badoq.UpdateRecord;
next;
end;
badoq.Refresh;
end;
adcon.CommitTrans;
finally Screen.Cursor:=crDefault;
bAdoQ.Free;
if adcon.InTransaction then
adcon.RollbackTrans;
end;
end;
procedure TFrm_SaveOrRestore.backup2(adcon: TADOConnection);
var
bAdoQ:TADOQuery;
begin
bAdoQ:=TADOQuery.Create(Self);
bAdoQ.Connection:=adcon;
bAdoQ.SQL.Clear;
bAdoQ.SQL.Text:='delete from T_DEPT';
bAdoQ.ExecSQL;
badoq.SQL.Text:='select * from T_DEPT';
bAdoQ.Open;
try Screen.Cursor:=crHourGlass;
adcon.BeginTrans;
with dm.AdoQback do
begin
SQL.Text:='select * from T_DEPT' ;
Prepared:=True;
Open;
while not Eof do begin application.ProcessMessages;
bAdoQ.Append;
badoq.FieldByName('deptno').AsString:=FieldByName('deptno').AsString;
badoq.FieldByName('deptname').AsString:=FieldByName('deptname').AsString;
badoq.UpdateRecord;
next;
end;
badoq.Refresh;
end;
adcon.CommitTrans;
finally Screen.Cursor:=crDefault;
bAdoQ.Free;
if adcon.InTransaction then
adcon.RollbackTrans;
end;
end;
procedure TFrm_SaveOrRestore.backup3(adcon: TADOConnection);
var
bAdoQ:TADOQuery;
begin
bAdoQ:=TADOQuery.Create(Self);
bAdoQ.Connection:=adcon;
bAdoQ.SQL.Clear;
bAdoQ.SQL.Text:='delete from T_EUPET';
bAdoQ.ExecSQL;
badoq.SQL.Text:='select * from T_EUPET';
bAdoQ.Open;
try
Screen.Cursor:=crHourGlass;
application.ProcessMessages;
adcon.BeginTrans;
with dm.AdoQback do
begin
SQL.Text:='select * from T_EUPET' ;
Prepared:=True;
Open;
while not Eof do begin
bAdoQ.Append;
badoq.FieldByName('eupetnno').AsString:=FieldByName('eupetnno').AsString;
badoq.FieldByName('eupetNo').AsString:=FieldByName('eupetNo').AsString;
badoq.FieldByName('eupetName').AsString:=FieldByName('eupetName').AsString;
badoq.UpdateRecord;
next;
end;
badoq.Refresh;
end;
adcon.CommitTrans;
finally
Screen.Cursor:=crDefault;
bAdoQ.Free;
if adcon.InTransaction then
adcon.RollbackTrans;
end;
end;
procedure TFrm_SaveOrRestore.backup4(adcon: TADOConnection);
var
bAdoQ:TADOQuery;
begin
bAdoQ:=TADOQuery.Create(Self);
bAdoQ.Connection:=adcon;
bAdoQ.SQL.Clear;
bAdoQ.SQL.Text:='delete from T_Part';
bAdoQ.ExecSQL;
badoq.SQL.Text:='select * from T_Part';
bAdoQ.Open;
try
Screen.Cursor:=crHourGlass;
adcon.BeginTrans;
with dm.AdoQback do
begin
SQL.Text:='select * from T_Part' ;
Prepared:=True;
Open;
while not Eof do begin
application.ProcessMessages;
bAdoQ.Append;
badoq.FieldByName('NPartNo').AsString:=FieldByName('NPartNo').AsString;
badoq.FieldByName('PartName').AsString:=FieldByName('PartName').AsString;
badoq.FieldByName('EupetNno').AsString:=FieldByName('EupetNno').AsString;
badoq.FieldByName('Ib').AsString:=FieldByName('Ib').AsString;
badoq.FieldByName('PartNo').AsString:=FieldByName('PartNo').AsString;
badoq.FieldByName('Ibmemo').AsString:=FieldByName('Ibmemo').AsString;
badoq.UpdateRecord;
next;
end;
badoq.Refresh;
end;
adcon.CommitTrans;
finally Screen.Cursor:=crDefault;
bAdoQ.Free;
if adcon.InTransaction then
adcon.RollbackTrans;
end;
end;
procedure TFrm_SaveOrRestore.backup5(adcon: TADOConnection);
var
bAdoQ:TADOQuery;
begin
bAdoQ:=TADOQuery.Create(Self);
bAdoQ.Connection:=adcon;
bAdoQ.SQL.Clear;
bAdoQ.SQL.Text:='delete from T_checkpt';
bAdoQ.ExecSQL;
badoq.SQL.Text:='select * from T_checkpt';
bAdoQ.Open;
try Screen.Cursor:=crHourGlass;
adcon.BeginTrans;
with dm.AdoQback do
begin
SQL.Text:='select * from T_checkpt' ;
Prepared:=True;
Open;
while not Eof do begin
application.ProcessMessages;
bAdoQ.Append;
badoq.FieldByName('eupetNno').AsString:=FieldByName('eupetNno').AsString;
badoq.FieldByName('npartNo').AsString:=FieldByName('npartNo').AsString;
badoq.FieldByName('msrNNo').AsString:=FieldByName('msrNNo').AsString;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -