📄 backup.pas
字号:
unit backup;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, ExtCtrls, ComCtrls, DB, ADODB, Grids, DBGrids;
type
Tbackupfm = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
ADOQuery1: TADOQuery;
SaveDialog1: TSaveDialog;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
BitBtn1: TBitBtn;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Panel2: TPanel;
GroupBox2: TGroupBox;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
BitBtn2: TBitBtn;
Edit2: TEdit;
Button3: TButton;
Button4: TButton;
OpenDialog1: TOpenDialog;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
function GetHostName : string;
{ Public declarations }
end;
var
backupfm: Tbackupfm;
host : string;
implementation
{$R *.dfm}
Function Tbackupfm.GetHostName : string;
var
Computername : array[0..MAX_COMPUTERNAME_LENGTH+1] of char;
size : Cardinal;
begin
result :='';
size :=MAX_COMPUTERNAME_LENGTH + 1;
GetComputerName(Computername,size);
result :=strpas(Computername);
end;
procedure Tbackupfm.FormCreate(Sender: TObject);
begin
host := GetHostName;
Adoquery1.ConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=ZlHotel;Data Source='+host+'';
end;
procedure Tbackupfm.BitBtn1Click(Sender: TObject);
begin
if savedialog1.Execute then
edit1.Text := savedialog1.FileName;
end;
procedure Tbackupfm.RadioButton2Click(Sender: TObject);
begin
if RadioButton2.Checked then
begin
edit1.Enabled :=true;
BitBtn1.Enabled := true;
end
else
begin
edit1.Enabled :=false;
BitBtn1.Enabled :=false;
end;
end;
procedure Tbackupfm.Button1Click(Sender: TObject);
begin
if RadioButton1.Checked then
try
with adoquery1 do
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('backup database zlhotel to disk = ''zlhotel.bak'' with init');
execsql;
end;
application.MessageBox('备份成功','提示',0);
edit1.Text :='';
except
application.MessageBox('备份不成功','提示',0);
end;
if RadioButton2.Checked then
try
with adoquery1 do
begin
adoquery1.Close;
sql.Clear;
sql.Add('backup database zlhotel to disk='''+edit1.text+''' with init') ;
execsql;
end;
application.MessageBox('备份成功','提示',0);
edit1.Text :='';
except
application.MessageBox('备份不成功','提示',0);
end;
end;
procedure Tbackupfm.Button2Click(Sender: TObject);
begin
close;
end;
procedure Tbackupfm.RadioButton4Click(Sender: TObject);
begin
if Radiobutton4.Checked then
begin
edit2.Enabled := true;
BitBtn2.Enabled :=true;
end
else
begin
Edit2.Enabled :=false;
BitBtn2.Enabled :=false;
end;
end;
procedure Tbackupfm.Button3Click(Sender: TObject);
begin
Adoquery1.ConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source='+host+'';
if RadioButton3.Checked then
try
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('alter database zlhotel set offline with rollback immediate');
execsql;
sql.Clear;
sql.Add('restore database zlhotel from disk = ''zlhotel.bak'' with recovery');
execsql;
end;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('alter database zlhotel set online with rollback immediate');
adoquery1.ExecSQL;
application.MessageBox('数据库还原成功,请重新启动服务器!','提示',0);
edit2.Text :='';
except
application.MessageBox('数据库还原不成功','提示',0);
end;
if RadioButton4.Checked then
try
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('alter database zlhotel set offline with rollback immediate');
execsql;
sql.Clear;
sql.Add('restore database zlhotel from disk = '''+edit2.Text+''' with recovery');
execsql;
end;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('alter database zlhotel set online with rollback immediate');
adoquery1.ExecSQL;
application.MessageBox('数据库还原成功,请重新启动服务器!','提示',0);
edit2.Text :='';
except
application.MessageBox('数据库还原不成功','提示',0);
end;
end;
procedure Tbackupfm.BitBtn2Click(Sender: TObject);
begin
if opendialog1.Execute then
edit2.Text := opendialog1.FileName;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -