【delphi开源代码栏目提醒】:网学会员在delphi开源代码频道为大家收集整理了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
begin
Application.MessageBox('恢复数据库失败','错误信息',MB_OK);
exit;
end;
end;
Application.MessageBox('成功地恢复了数据库','信息',MB_OK);
rsFileNameStr :='';
end;
rsFileNameStr :='';
lbRSFileName.Caption :='';
end;
end.
上一篇:
BackUpData_Unit.pas
下一篇:
配电自动化系统计算机网络及其支持软件的体系结构