delphi mysql 数据库备份_delphi操作sql数据库的备份和强制还原

procedure TFrmMain.NSystBackupClick(Sender: TObject);

var strFile:string;

begin

//  数据库备份

SaveDlgData.Filter:='All files (*.*)|*.*';

SaveDlgData.FileName:='DataBack'+DateToStr(now);

if SaveDlgData.Execute then

begin

strFile:=SaveDlgData.FileName;

StatusBar1.Panels[1].Text:='正在备份数据库...';

DataModuleMain.ADOQBack.Close;

DataModuleMain.ADOQBack.SQL.Clear;

DataModuleMain.ADOQBack.SQL.Add('backup database DangerWaste to disk='''+strFile+''' ');

try

DataModuleMain.ADOQBack.ExecSQL;

Application.MessageBox(pchar('数据库已经备份到'+strFile+'!'),'提示',MB_OK+MB_ICONINFORMATION );

//write log

DataModuleMain.AddLog(currentUser.Name,'备份数据库到'+strFile,DateTimeTostr(now));

StatusBar1.Panels[1].Text:='';

except

Application.MessageBox('文件写入错误!','错误',MB_OK+MB_ICONERROR );

end;

end;

end;

procedure TFrmMain.NSysRestoreClick(Sender: TObject);

//数据库还原

var strFile:string;

begin

if OpenDlgRestore.Execute then

begin

strFile:=OpenDlgRestore.FileName;

if messagedlg('是否确定还原',mtconfirmation,[mbyes,mbno],0)=mryes then

begin

StatusBar1.Panels[1].Text:='正在恢复数据库...';

try

with DataModuleMain do

begin

ADOConnMain.Close;

ADOConnectRestore.Open();//主义这个connection连接的是master数据库

ADOQRestore.Close;

ADOQRestore.SQL.Clear;

ADOQRestore.SQL.Add('ALTER DATABASE DangerWaste SET OFFLINE WITH ROLLBACK IMMEDIATE');

ADOQRestore.ExecSQL;

ADOQRestore.Close;

ADOQRestore.SQL.Clear;

ADOQRestore.SQL.Add('restore database DangerWaste From disk='''+strFile+''' ');

ADOQRestore.ExecSQL;

ADOConnectRestore.Close;

ADOConnMain.Connected:=true;

end;

Application.MessageBox(pchar('数据库恢复成功!'),'提示',MB_OK+MB_ICONINFORMATION );

DataModuleMain.AddLog(currentUser.Name,'还原数据库从'+strFile,DateTimeTostr(now));

StatusBar1.Panels[1].Text:='';

except

Application.MessageBox('数据库联接错误','错误',MB_OK+MB_ICONERROR);

end;

end;

end;

end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值