完全にオフラインの SD アプリケーションの場合、アプリケーションのローカルデータベースをバックアップし、復元できると便利です。
GeneXus コアモジュールで定義される外部オブジェクトです。
このメソッドは、ローカルデータベースとそのすべてのリソースをバックアップします。これには以下が含まれます:
- .sqlite ファイル
- データベースから参照されているすべてのバイナリファイル (Blob、画像など)
- 同期のハッシュ
- データベースの MD5 ハッシュ値
構文
&Result = DataBase.Backup(&Path)
入力値の説明:
- &Result は ResultCode ドメインに基づいています (以下を参照)。
- &Path は、バックアップファイルの URI を示す文字列変数です。
例
&path = Directory.ExternalFilesPath + "/backups/DB15012020.zip"
&result = Database.Backup(&path)
以前に作成されたバックアップを復元します。
データベースは動作を続けるため、ユーザーは復元後もアプリケーションの使用を継続できます。
構文
&Result = DataBase.Restore(&Path)
入力値の説明:
- &Result は ResultCode ドメインに基づいています (以下を参照)。
- &Path は、バックアップファイルの URI を示す文字列変数です。
例
&path = Directory.ExternalFilesPath + "/backups/DB15012020.zip"
&result = Database.Restore(&path)
処理の結果を返すために使用されるドメインです。
有効な値は次のとおりです。
コード |
メッセージ |
0 |
Success |
1 |
Application is not offline |
2 |
Path is not correct / Backup file not found |
3 |
Database structure does not match |
9 |
Internal error |
バックアップおよび復元の処理は、データベースにアクセスしているか、データベースに変更を加えている操作がほかにある間は実行しないでください。このような場合の動作は定義されていないため、不整合が生じる可能性があります。
アプリケーションの同期もある場合、バックアップおよび復元の処理は慎重に使用するようにします。復元処理で追加または削除されるレコードはサーバーに送信されないため、情報が失われる可能性があります。また、バックアップを復元するとき、デバイスに復元される同期のハッシュがサーバーには存在しなくなっている可能性があり ( [ Minimum Time Between Table Purges ] プロパティによる)、これがデバイスの再同期時に問題となる可能性があります。
|