📄 backup.pas
字号:
unit BackUp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBXpress, FMTBcd, DB, SqlExpr, StdCtrls, ComCtrls,Regist;
const
ver='VER 1.02';
type
TMainForm = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
Button2: TButton;
Label2: TLabel;
Edit2: TEdit;
Button4: TButton;
SQLConnection1: TSQLConnection;
SQLQu_BackUp: TSQLQuery;
SaveDialog1: TSaveDialog;
OpenDialog1: TOpenDialog;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Button3: TButton;
Button5: TButton;
Label6: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
uses HiteDlg;
{$R *.dfm}
//设置数据库的连接属性
procedure TMainForm.FormCreate(Sender: TObject);
var
IPaddress:string;
begin
try
IPaddress:=inttostr(GetRegistryIntValue('software\kaer\yxwg','IPaddress1'));
IPaddress:=IPaddress+'.'+inttostr(GetRegistryIntValue('software\kaer\yxwg','IPaddress2'));
IPaddress:=IPaddress+'.'+inttostr(GetRegistryIntValue('software\kaer\yxwg','IPaddress3'));
IPaddress:=IPaddress+'.'+inttostr(GetRegistryIntValue('software\kaer\yxwg','IPaddress4'));
SQLConnection1.Connected:=false;
SQLConnection1.Params.Strings[1]:='HostName='+IPaddress;
SQLConnection1.Params.Strings[2]:='DataBase=kaeryxwg';
SQLConnection1.Params.Strings[3]:='User_Name=sa';
SQLConnection1.Params.Strings[4]:='Password=123';
SQLConnection1.Open;
except
showmessage('数据库连接错误,请检查数据库是否存在及IP设置是否正确。');
Application.Terminate;
end;
end;
//备份数据库
procedure TMainForm.Button1Click(Sender: TObject);
begin
if Edit1.Text='' then
begin
showmessage('未选择目标文件名。');
exit
end;
try
HiteForm.LblHite.Caption:='正在备份数据库,请稍侯...';
HiteForm.Show;
HiteForm.Update;
SQLQu_BackUp.SQL.Text:='BACKUP DATABASE [northwind] TO DISK = '''
+Edit1.Text+''' WITH INIT';
SQLQu_BackUp.ExecSQL(true);
HiteForm.Hide;
showmessage('数据库备份完毕。');
except
showmessage('数据库备份失败,请重新备份。');
end;
end;
//恢复数据库
procedure TMainForm.Button4Click(Sender: TObject);
begin
if Edit2.Text='' then
begin
showmessage('未选择源文件名。');
exit
end;
try
try
HiteForm.LblHite.Caption:='正在还原数据库,请稍侯...';
HiteForm.Show;
HiteForm.Update;
SQLQu_BackUp.SQL.Text:='use master';
SQLQu_BackUp.ExecSQL(true);
SQLQu_BackUp.SQL.Text:='RESTORE DATABASE northwind from DISK ='''+Edit2.Text+''''
+' WITH FILE = 1, NOUNLOAD , STATS = 10, RECOVERY,replace';
SQLQu_BackUp.ExecSQL(true);
finally
HiteForm.Hide;
end;
showmessage('数据库恢复完毕。');
except
showmessage('数据库恢复失败,请检查所选恢复文件是否正确。'+#13+'关闭其它应用程序,必要时重新启动计算机,然后重新恢复。');
end;
end;
procedure TMainForm.Button5Click(Sender: TObject);
begin
close;
end;
procedure TMainForm.Button2Click(Sender: TObject);
begin
if SaveDialog1.Execute then
Edit1.Text:=SaveDialog1.FileName;
end;
procedure TMainForm.Button3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Edit2.Text:=OpenDialog1.FileName;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -