delphi 本地数据库备份与还原(Delphi)


本文整理自网络,侵删。

 
{
有一点要说明的是,备份与恢复,都只能在装有数据库的那台机器(服务器)上操作,不能远程执行的。要特别注意这点。
}

procedure TForm1.Button10Click(Sender: TObject);
begin
if IDYES=MessageDlg('数据库备份功能只能在服务器上执行,请先确认计算机是要备份的服务器,是否现在进行备份?',mtConfirmation ,[mbYes,mbNo],0) then
begin
if SaveDialog1.Execute then
begin
showmessage('正在备份,可能需要几分钟时间。');
if (not FileExists(SaveDialog1.FileName)) or (DeleteFile(SaveDialog1.FileName)) then
begin
application.ProcessMessages;
try
FDConnection1.ExecSQL('BACKUP DATABASE data TO DISK = ''' + SaveDialog1.FileName + '''');
except
ShowMessage('数据库备份失败');
Exit;
end;

ShowMessage('操作成功,系统数据库已备份。'+chr(13)+chr(13)
+'备份文件:'+SaveDialog1.FileName);
end;

end;
end;

end;

procedure TForm1.Button11Click(Sender: TObject);
begin
FDConnection1.ExecSQL('insert into data(分类, 姓名, 手机) ' +
'values(:N, :D, :P)', ['朋友', '赵先生', '13903473237']);

end;

{
恢复有个地方要注意的,是必须没有其他程序连接到你要恢复的这个数据库上。包括你的程序自身。
因为有可能你的程序前面已经连接到数据库,并进行了一些操作。比如:登录系统->验证用户名。
这时必须关闭AdoConnection,并重新打开,打开的时候,注意不能指定默认数据库(特别注意)。你一指定默认数据库,就又连接上了。
那么永远也没办法成功恢复数据库的!
}
procedure TForm1.Button12Click(Sender: TObject);
begin
  if IDYES=MessageDlg('数据库恢复功能只能在服务器上执行,请先确认计算机是要恢复的服务器,并且现在没有任何程序正在使用数据库,是否现在进行恢复?',mtConfirmation ,[mbYes,mbNo],0) then
  begin
    if OpenDialog1.Execute then
    begin
       showmessage('正在恢复,可能需要几分钟时间。');
      try

        Application.ProcessMessages;
        sleep(100);
        FDConnection1.ExecSQL('RESTORE DATABASE data FROM DISK = '''+ OpenDialog1.FileName + '''');

        MessageDlg('数据库恢复完成,现在将重启动本系统。',mtInformation ,[mbOK],0);

      except

        MessageDlg('数据库恢复失败,请确认没有其它程序已经连接到数据库。现在将重启动本系统。',mtInformation ,[mbOK],0);

      end;

    end;
  end;

end;

相关阅读 >>

Delphi idhashmessagedigest, idhash, idglobal md5

Delphi setpriorityclass 设置当前程序的优先级

Delphi 实现放大效果

Delphi在设计时设置tstringgrid控件各列的列宽

Delphi tms web core 复制内容到剪切板

Delphi listview 导出excel txt vcf 单元

Delphi firedac fdconnection 事务

Delphi 过滤开头 结尾 全部 空格的函数

Delphi 动态数组传递数据示例

Delphi 用浏览器来显示带图片的邮件内容,图片无需保存为本地文件

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...