我有一些虚拟数据库(我使用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
打开它时,我得到了这样的错误消息:
我使用的登录名和密码是defualt SYSDBA
和masterkey
- 在一个环境中,我在我的机器上执行所有操作。此外dummy.fdb
文件及其副本大小相同。
那么为什么副本成为了coorupt?以及如何正确复制.fdb
文件?
答案 0 :(得分:4)
在复制文件之前,必须确保数据库连接已关闭。否则文件不一致。最好使用firebird bin文件夹中的gbak备份实用程序,而不是制作文件副本。