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 xe安装后配置android的sdk的方法

Delphi tstreamwriter tstreamreader 流操作3

Delphi 实现拦截api的钩子(hook)

Delphi 窗体form的formstyle属性设置为fsstayontop时属性设置不起作用问题探讨。

delph 自带url编码函数 tnetencoding

Delphi idhttp post 支持 gzip 解压缩

Delphi 字符串截取

Delphi winsock远程唤醒计算机的函数

Delphi 获取url特殊路径

Delphi windows的消息传递--消息盒子

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



打赏

取消

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

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

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

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

评论

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