Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 是否可以通过SQL进行Firebird数据库备份?_Delphi_Firebird - Fatal编程技术网

Delphi 是否可以通过SQL进行Firebird数据库备份?

Delphi 是否可以通过SQL进行Firebird数据库备份?,delphi,firebird,Delphi,Firebird,我需要我的软件对firebird数据库进行热备份。 使用gbak是官方的做法。但使用外部工具将迫使我克服确保工具位于系统路径中或我拥有gbak.exe的实际位置的麻烦。如果可能的话,我想避免这种情况 那么,有没有选择做类似的事情 BACKUP DATABASE TO location_of_backup; 我使用的是Delphi XE4、Firebird 2.1和DBExpress,而不是安装第三方的选项。这在SQL中是不可能的 使用Delphi XE4,您可以使用IBExpress(TIBA

我需要我的软件对firebird数据库进行热备份。 使用gbak是官方的做法。但使用外部工具将迫使我克服确保工具位于系统路径中或我拥有gbak.exe的实际位置的麻烦。如果可能的话,我想避免这种情况

那么,有没有选择做类似的事情

BACKUP DATABASE TO location_of_backup;

我使用的是Delphi XE4、Firebird 2.1和DBExpress,而不是安装第三方的选项。

这在SQL中是不可能的

使用Delphi XE4,您可以使用IBExpress(TIBACKUP)轻松进行备份。您不需要gbak.exe

FireDac也可以做到这一点,如果你得到它(TADIBBackup)


如果没有任何第三方库和/或工具,我想您唯一的选择就是针对。可能是一个起点。Firebird可以通过服务API创建备份,如果您有一个实现服务API的access组件,那么您可以创建备份。您可以使用第三方lib,只剪切其中的备份/还原部分,而跳过其余部分。例如,来自统一的Interbase库。另外,对于热备份,可以考虑使用<代码> NBAK < /C> >而不是<代码> GBAK < /C> >在Client + Server模型中还有一个不同之处。当您使用gbak/nbak进行备份时,真正的备份过程是在客户端计算机上执行的,输出文件是在客户端计算机上创建的。当您使用Firebird Services API时,将在服务器上执行备份,并在服务器上创建输出文件。如果仅使用DB Express和SQL命令的要求是绝对的,则您可以创建服务器端插件,该插件将在收到自定义SQL命令后进行备份。尽管我相信正确的方法是通过UIB或IBX(DBX的补充)使用服务API
ADIBBackup1.DriverLink := ADPhysIBDriverLink1;

ADIBBackup1.UserName := 'sysdba';
ADIBBackup1.Password := 'masterkey';
ADIBBackup1.Host := 'db_srv_host';
ADIBBackup1.Protocol := ipTCPIP;

ADIBBackup1.Database := 'e:\ib\addemo.fdb';
ADIBBackup1.BackupFiles.Add('e:\ib\addemo.backup');

ADIBBackup1.Backup;