📄 backuprestoremain.~pas
字号:
//备份和恢复数据库窗体
unit BackupRestoreMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
TBRMainForm = class(TForm)
backupDialog: TOpenDialog;
Panel1: TPanel;
GroupBox1: TGroupBox;
Label1: TLabel;
btBackup: TBitBtn;
lbBKFileName: TLabel;
btBKStart: TButton;
RestoreDialog: TSaveDialog;
Panel2: TPanel;
GroupBox2: TGroupBox;
btRestore: TButton;
btRSStart: TBitBtn;
Label2: TLabel;
lbRSFileName: TLabel;
procedure btBackupClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btBKStartClick(Sender: TObject);
procedure btRestoreClick(Sender: TObject);
procedure btRSStartClick(Sender: TObject);
Private
bkFileNameStr :string;//保存备份数据库的文件名
rsFileNameStr :string;//保存恢复数据库所使用的文件名
{ Private declarations }
Public
{ Public declarations }
end;
var
BRMainForm: TBRMainForm;
implementation
uses ArchDataClass,ArchDataModule,BSstatus;
{$R *.dfm}
//选择将数据库备份到什么文件中
procedure TBRMainForm.btBackupClick(Sender: TObject);
begin
if backupDialog.Execute then
begin
lbBKFileName.Caption :=backupDialog.FileName;
bkFileNameStr :='backup database archDB TO DISK ='+quotedstr(backupDialog.FileName);
end;
end;
procedure TBRMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
BRMainForm.Release;
end;
//开始备份操作
procedure TBRMainForm.btBKStartClick(Sender: TObject);
begin
if bkFileNameStr ='' then
begin
Application.MessageBox('请选择要生成的备份文件名','提示',MB_OK);
lbBKFileName.Caption :='';
exit;
end;
if Application.MessageBox('确认要备份现有数据库吗?','确认操作',MB_OKCANCEL)=1 then
begin
BSStatusForm.Show;
try
MainDataModule.ArchDBConnection .Execute(bkFileNameStr);
except
on Exception do
Application.MessageBox('备份数据库失败','错误信息',MB_OK);
end;
bkFileNameStr :='';
BSStatusForm.Release;
end;
bkFileNameStr :='';
lbBKFileName.Caption :='';
end;
//选择从哪个文件开始恢复数据库
procedure TBRMainForm.btRestoreClick(Sender: TObject);
begin
if RestoreDialog.Execute then
begin
lbRSFileName.Caption :=restoreDialog.FileName;
rsFileNameStr :='RESTORE DATABASE ArchDB FROM DISK = '+quotedstr(RestoreDialog.FileName);
end;
end;
//开始恢复数据库
procedure TBRMainForm.btRSStartClick(Sender: TObject);
begin
if rsFileNameStr= '' then
begin
Application.MessageBox('请选恢复数据库所需上述文件','提示',MB_OK);
lbrsFileName.Caption :='';
exit;
end;
if Application.MessageBox('确认要恢复现有数据库吗?','确认操作',MB_OKCANCEL)=1 then
begin
try
MainDataModule.ArchDBConnection.Execute(rsFileNameStr);
except
on Exception do
Application.MessageBox('恢复数据库失败','错误信息',MB_OK);
exit;
end;
Application.MessageBox('成功地恢复了数据库','信息',MB_OK);
rsFileNameStr :='';
end;
rsFileNameStr :='';
lbRSFileName.Caption :='';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -