1

ダミーのデータベース (私は 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新しい名前のファイルのコピーを作成します。しかし、問題は、それを開こうとすると、IBexpert次のようなエラー メッセージが表示 されることです。ここに画像の説明を入力

私が使用したログインとパスワードはデフォルトSYSDBAでありmasterkey、1 つの環境で自分のマシンのすべてを実行しています。またdummy.fdb、ファイルとそのコピーのサイズは同じです。

では、なぜ copy は corupt になったのでしょうか? .fdbそして、ファイルを正しくコピーする方法は?

4

1 に答える 1

4

ファイルをコピーする前に、db 接続が閉じていることを確認する必要があります。そうしないと、ファイルに一貫性がありません。ファイルのコピーを作成する代わりに、firebird の bin フォルダーから gbak バックアップ ユーティリティを使用することをお勧めします。

于 2013-11-06T18:49:19.523 に答える