0

次のコードを実行すると、データベース ファイルにはテーブル名のみが含まれます。フィールド名や実際のデータがコピーされているようには見えません。

procedure TdbModule.BackupDB();
begin
  ADConnection1.Connected := True;
  ADSQLiteBackup1.DatabaseObj := ADConnection1.CliObj;
  ADSQLiteBackup1.DestDatabase := 'd:\dan.sdb';
  ADSQLiteBackup1.Backup;
end;

ファイルを作成していdan.sdbますが、バックアップ データがありません。アプリケーションはデータを表示し、正常に動作します。

アイデア?

4

1 に答える 1

3

FireDAC LocalSQL を使用して複数の TADMemTable / その他のデータセットが接続された SQLite インメモリ データベースがありますか?

はいの場合、データセットは SQLite 仮想テーブルとして表されるため、バックアップはデータセットの内容をコピーしません。バックアップは、通常のテーブルの内容のみをコピーします。

回避策として、次のことを行う必要があります。

  • 各 ADMemTable に対して CREATE TABLE ... AS SELECT ... コマンドを実行して、それらを通常のテーブルにコピーします。
  • ADLocalSQL.Active を False に設定します。
  • バックアップを実行します。
于 2013-05-24T16:12:05.487 に答える