Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Резервное копирование и восстановление баз данных SQLite в Android-приложениях на Delphi с использованием Firemonkey

Delphi , Базы данных , SQL

Разработка приложений под Android с использованием Delphi и Firemonkey открывает широкие возможности для работы с базами данных SQLite. В данной статье мы рассмотрим, как осуществляется резервное копирование и восстановление баз данных SQLite в Android-приложениях, используя компоненты FireDAC.

Проблема резервного копирования

Пользователь столкнулся с проблемой резервного копирования базы данных SQLite в Android-приложении, используя Delphi 10.2 и компоненты Firemonkey. Приведенный в вопросе код не генерировал файл резервной копии, и пользователь хотел сохранить его на SD-карте, в то время как попытки сохранения осуществлялись в текущем каталоге.

Решение проблемы

Для решения проблемы важно корректно указать пути к файлам баз данных и использовать метод Backup компонента TFDSQLiteBackup. Пример кода для резервного копирования базы данных выглядит следующим образом:

procedure TForm1.Button1Click(Sender: TObject);
var
  BackupPath: string;
  BackupFile: string;
begin
  BackupPath := System.IOUtils.TPath.GetDocumentsPath;
  BackupFile := System.IOUtils.TPath.Combine(BackupPath, 'MyBackup.db');

  FDSQLiteBackup1.DatabaseObj := FDConnection1.CliObj as TSQLiteDatabase;
  FDSQLiteBackup1.DestDatabase := BackupFile;
  FDSQLiteBackup1.Backup;
end;

Также можно указать исходный и целевой файлы баз данных напрямую:

procedure TForm1.Button1Click(Sender: TObject);
var
  CommonPath: string;
  SourceFile: string;
  BackupFile: string;
begin
  CommonPath := System.IOUtils.TPath.GetDocumentsPath;
  SourceFile := System.IOUtils.TPath.Combine(CommonPath, 'MySource.db');
  BackupFile := System.IOUtils.TPath.Combine(CommonPath, 'MyBackup.db');

  FDSQLiteBackup1.Database := SourceFile;
  FDSQLiteBackup1.DestDatabase := BackupFile;
  FDSQLiteBackup1.Backup;
end;

Восстановление базы данных

Файлы резервных копий, созданные с помощью API резервного копирования SQLite, являются просто копиями баз данных и могут быть открыты так же, как и оригинальные базы данных.

Сохранение файла на внешнем хранилище

Для сохранения файла резервной копии на внешнем хранилище (SD-карте) необходимо убедиться, что в настройках проекта разрешено использование внешнего хранилища. Пример кода для сохранения файла на SD-карту:

procedure TForm1.Button1Click(Sender: TObject);
var
  SourcePath: string;
  SourceFile: string;
  BackupPath: string;
  BackupFile: string;
begin
  if not IsExtStgWritable then
    raise Exception.Create('Внешнее хранилище недоступно для записи!');

  SourcePath := System.IOUtils.TPath.GetDocumentsPath;
  SourceFile := System.IOUtils.TPath.Combine(SourcePath, 'MySource.db');
  BackupPath := GetExtStgPath;
  BackupFile := System.IOUtils.TPath.Combine(BackupPath, 'MyBackup.db');

  FDSQLiteBackup1.Database := SourceFile;
  FDSQLiteBackup1.DestDatabase := BackupFile;
  FDSQLiteBackup1.Backup;
end;

Функция GetExtStgPath возвращает путь к внешнему хранилищу, а функция IsExtStgWritable проверяет, доступно ли внешнее хранилище для записи.

Используя эти подходы, разработчики могут обеспечить надежное резервное копирование и восстановление баз данных SQLite в Android-приложениях, созданных с помощью Delphi и Firemonkey.

Создано по материалам из источника по ссылке.

Статья о резервном копировании и восстановлении баз данных SQLite в Android-приложениях, разработанных с использованием Delphi и Firemonkey, с решениями для сохранения файлов на внешних носителях.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: SQL ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-10 17:02:07/0.0034120082855225/0