【delphi开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了delphi开源代码-dbBacupRestore.pas的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
unit dbBacupRestore;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, Buttons, DB, ADODB;
type
TBackupAndRestore = class(TFrame)
GroupBox1: TGroupBox;
Label1: TLabel;
lbFileNameAndDir: TLabel;
btBackup: TBitBtn;
lbFileNameAndDirInfo: TLabel;
GroupBox2: TGroupBox;
Label2: TLabel;
lbRestoreFile: TLabel;
btRestore: TBitBtn;
lbRestoreFileName: TLabel;
SaveDialog: TSaveDialog;
OpenDialog: TOpenDialog;
ADOConnection1: TADOConnection;
procedure lbFileNameAndDirMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
procedure lbFileNameAndDirMouseLeave(Sender: TObject);
procedure lbRestoreFileMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure lbRestoreFileMouseLeave(Sender: TObject);
procedure lbFileNameAndDirClick(Sender: TObject);
procedure lbRestoreFileClick(Sender: TObject);
procedure btBackupClick(Sender: TObject);
procedure btRestoreClick(Sender: TObject);
private
{ Private declarations }
public
BackupFileName :string;
RestoreFileName :string;
bkFileNameStr :String;
rsFileNameStr :String;
bkdataBaseName :String;
{ Public declarations }
end;
implementation
uses HotelClasses, HotelDataModule;
{$R *.dfm}
procedure TBackupAndRestore.lbFileNameAndDirMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
lbFileNameAndDir.Font.Color :=clRed;
end;
procedure TBackupAndRestore.lbFileNameAndDirMouseLeave(Sender: TObject);
begin
lbFileNameAndDir.Font.Color :=clBlue;
end;
procedure TBackupAndRestore.lbRestoreFileMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
lbRestoreFile.Font.Color :=clRed;
end;
procedure TBackupAndRestore.lbRestoreFileMouseLeave(Sender: TObject);
begin
lbRestoreFile.Font.Color :=clBlue;
end;
procedure TBackupAndRestore.lbFileNameAndDirClick(Sender: TObject);
begin
if SaveDialog.Execute then
begin
BackupFileName :=SaveDialog.FileName;
bkFileNameStr :='backup database '+bkdatabaseName+' TO DISK ='+quotedstr(SaveDialog.FileName);
lbFileNameAndDirInfo.Caption :=backupFileName;
end;
end;
procedure TBackupAndRestore.lbRestoreFileClick(Sender: TObject);
begin
if OpenDialog.Execute then
begin
RestoreFileName :=OpenDialog.FileName;
lbRestoreFileName.Caption :=OpenDialog.FileName;
rsFileNameStr :='RESTORE DATABASE '+'HotelDB'+' FROM DISK = '+quotedstr(OpenDialog.FileName);
end;
end;
procedure TBackupAndRestore.btBackupClick(Sender: TObject);
begin
if bkDataBaseName = '' then
begin
showmessage('还没有配置数据库');
exit;
end;
if bkFileNameStr ='' then
begin
Application.MessageBox('请选择要生成的备份文件名','提示',MB_OK);
lbFileNameAndDirInfo.Caption :='';
exit;
end;
if Application.MessageBox('确认要备份现有数据库吗?','确认操作',MB_OKCANCEL)=1 then
begin
try
MainDataModule.hotelAdoConnection.Execute(bkFileNameStr);
except
on Exception do
begin
Application.MessageBox('备份数据库失败','错误信息',MB_OK);
exit;
end;
end;
Application.MessageBox('成功地备份了数据库','信息',MB_OK);
bkFileNameStr :='';
end;
bkFileNameStr :='';
lbFileNameAndDirInfo.Caption :='';
end;
procedure TBackupAndRestore.btRestoreClick(Sender: TObject);
var
teststr :string;
begin
if bkDatabaseName = '' then
begin
showmessage('还没有配置数据库');
exit;
end;
if rsFileNameStr= '' then
begin
Application.MessageBox('请选恢复数据库所需上述文件','提示',MB_OK);
lbRestoreFileName.Caption :='';
exit;
end;
if Application.MessageBox('确认要恢复现有数据库吗?','确认操作',MB_OKCANCEL)=1 then
begin
MainDataModule.hotelAdoConnection.close;
MainDataModule.hotelAdoConnection.free;
adoconnection1.ConnectionString :=dsnStr;
Adoconnection1.DefaultDatabase :='master';
Adoconnection1.Connected :=true;
try
ADoConnection1.Execute(rsFileNameStr);
// MainDataModule.HotelADOConnection.Execute(rsFileNameStr);
except
on Exception do
begin
Application.MessageBox('恢复数据库失败','错误信息',MB_OK);
exit;
end;
end;
Application.MessageBox('成功地恢复了数据库','信息',MB_OK);
rsFileNameStr :='';
end;
rsFileNameStr :='';
lbRestoreFileName.Caption :='';
MainDataModule.hotelAdoConnection :=TAdoConnection.Create(Application);
MainDataModule.hotelAdoConnection.Connected :=false;
MainDataModule.hotelAdoConnection.ConnectionString :=dsnstr;
MainDataModule.hotelAdoConnection.DefaultDatabase :='hoteldb';
MainDataModule.hotelAdoConnection.LoginPrompt :=false;
MainDataModule.hotelAdoConnection.Connected :=true;
MainDataModule.AccountTable.Connection :=MainDataModule.hotelAdoConnection;
MainDataModule.AccountTable.Active :=true;
MainDataModule.roomTable.Connection :=MainDataModule.hotelAdoConnection;
MainDataModule.RoomTable.Active :=true;
MainDataModule.ServiceTypeTable.Connection :=MainDataModule.hotelAdoConnection;
MainDataModule.ServiceTypeTable.Active :=true;
end;
end.
上一篇:
DBBackup_Unit.pas
下一篇:
法律专业开题报告范文