无法打开Firebird数据库文件副本

时间:2013-11-06 16:25:24

标签: c++ database qt firebird ibexpert

我有一些虚拟数据库(我使用firebird)文件,我填写了一些数据,当填写程序完成后,我复制它并保存新名称。顺便使用下面的代码:

void importdb_module::copyAndSaveDatabaseFile(){
    QString source_file = "c:/databases/dummy.fdb";
    QString destination_file =  QFileDialog::getSaveFileName(this, "Save", "c:/databases/", "*.fdb"); 
    QFile::copy(source_file, destination_file);

    deleteDummyContent();
}

它做了它想做的事情 - 创建dummy.fdb文件whit新名称的副本。但问题是,当我尝试用IBexpert打开它时,我得到了这样的错误消息: enter image description here

我使用的登录名和密码是defualt SYSDBAmasterkey - 在一个环境中,我在我的机器上执行所有操作。此外dummy.fdb文件及其副本大小相同。

那么为什么副本成为了coorupt?以及如何正确复制.fdb文件?

1 个答案:

答案 0 :(得分:4)

在复制文件之前,必须确保数据库连接已关闭。否则文件不一致。最好使用firebird bin文件夹中的gbak备份实用程序,而不是制作文件副本。