📄 ufrmdbbak.pas
字号:
unit UfrmDBBAK;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, RzLabel, RzButton, Mask, RzEdit, ComCtrls, ExtCtrls,
RzPanel, DB, ADODB;
type
TfrmDBBAK = class(TForm)
RzLabel1: TRzLabel;
RzEdit1: TRzEdit;
RzButton1: TRzButton;
RzGroupBox1: TRzGroupBox;
RzButton2: TRzButton;
RzButton3: TRzButton;
StatusBar1: TStatusBar;
ADOQuery1: TADOQuery;
SaveDialog1: TSaveDialog;
Label1: TLabel;
RzEdit2: TRzEdit;
OpenDialog1: TOpenDialog;
RzButton4: TRzButton;
RzButton5: TRzButton;
procedure RzButton3Click(Sender: TObject);
procedure RzButton1Click(Sender: TObject);
procedure RzButton2Click(Sender: TObject);
procedure RzButton4Click(Sender: TObject);
procedure RzButton5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmDBBAK: TfrmDBBAK;
implementation
uses UfrmMain;
{$R *.dfm}
procedure TfrmDBBAK.RzButton3Click(Sender: TObject);
begin
self.Close;
end;
procedure TfrmDBBAK.RzButton1Click(Sender: TObject);
begin
self.SaveDialog1.DefaultExt:='bak';
self.SaveDialog1.Filter:='*.bak(*.bak)|*.bak';
if self.SaveDialog1.Execute then
self.RzEdit1.Text:=self.SaveDialog1.FileName;
end;
procedure TfrmDBBAK.RzButton2Click(Sender: TObject);
begin
if Trim(self.RzEdit1.Text)='' then
begin
//ShowMessage('请选择要存放数据库备份文件的路径!!');
Application.MessageBox('请选择要存放数据库备份文件的路径!!','提示',MB_OK+MB_ICONINFORMATION);
exit;
end;
self.ADOQuery1.SQL.Clear;
self.ADOQuery1.SQL.Add('BACKUP DATABASE [LibDB] TO ');
self.ADOQuery1.SQL.Add('DISK='''+Trim(self.RzEdit1.Text)+''' WITH NOINIT, ');
self.ADOQuery1.SQL.Add('NOUNLOAD,NAME=''LibDB备份'',');
self.ADOQuery1.SQL.Add('NOSKIP,STATS=10,NOFORMAT');
frmMain.ADOConn.BeginTrans;
try
self.ADOQuery1.ExecSQL;
frmMain.ADOConn.CommitTrans;
//ShowMessage('备份数据库成功!!');
Application.MessageBox('备份数据库成功!!','提示',MB_OK+MB_ICONINFORMATION);
except //执行任务失败,回回滚,并提示失败!!
frmMain.ADOConn.RollbackTrans;
//ShowMessage('备份失败,请重试!!');
Application.MessageBox('备份失败,请重试!!','提示',MB_OK+MB_ICONINFORMATION);
exit;
end;
end;
procedure TfrmDBBAK.RzButton4Click(Sender: TObject);
begin
self.OpenDialog1.DefaultExt:='bak';
self.OpenDialog1.Filter:='*.bak(*.bak)|*.bak';
if self.OpenDialog1.Execute then
self.RzEdit2.Text:=self.OpenDialog1.FileName;
end;
procedure TfrmDBBAK.RzButton5Click(Sender: TObject);
begin
if Trim(self.RzEdit2.Text)='' then
begin
//ShowMessage('请选择数据库备份文件所在路径!!');
Application.MessageBox('请选择数据库备份文件所在路径!!','提示',MB_OK+MB_ICONINFORMATION);
exit;
end;
self.ADOQuery1.SQL.Clear;
self.ADOQuery1.SQL.Add('USE MASTER RESTORE DATABASE [LibDB] FROM ');
self.ADOQuery1.SQL.Add('DISK='''+Trim(self.RzEdit2.Text)+''' ');
frmMain.ADOConn.BeginTrans;
try
self.ADOQuery1.ExecSQL;
frmMain.ADOConn.CommitTrans;
//ShowMessage('数据库恢复成功!!');
Application.MessageBox('数据库恢复成功!!','提示',MB_OK+MB_ICONINFORMATION);
except //执行任务失败,回回滚,并提示失败!!
frmMain.ADOConn.RollbackTrans;
//ShowMessage('恢复失败,请重试!!');
Application.MessageBox('恢复失败,请重试!!','提示',MB_OK+MB_ICONINFORMATION);
exit;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -