Создание постоянной базы данных и сброс временной базы данных (: memory :) в нее в конце цикла - PullRequest
0 голосов
/ 05 декабря 2011

Я хочу иметь приложение, которое имеет постоянный файл базы данных (на жестком диске), и каждый раз, когда я запускаю свое приложение, оно должно создавать другой файл базы данных (временный файл в ОЗУ), который будет хранить определенную информацию.Этот временный файл будет сброшен в постоянное хранилище (постоянный файл базы данных) один раз в конце выполнения.Мне посоветовали использовать «SQLite Online Backup API» http://www.sqlite.org/backup.html, но возник вопрос.Будет ли временный файл (один в памяти) обновлять мой файл резервной копии при каждом выходе из приложения, или он удалит все старые данные, содержащиеся в файле резервной копии, и сохранит только ту информацию, которая находится в памяти?

Это что-то вроде этого?

char zFilename[] = "permanent.db"; 
char *db_name= ":memory:";

rc = sqlite3_open(db_name, &db);
//write some data to db
.........

//end of application flush db(memory) to permanent.db file
loadOrSaveDb( db, zFilename, 1);

Т.е. мне нужен один постоянный файл базы данных, который будет обновляться после каждого запуска моего приложения (он должен содержать данные старых прогонов и данные обновления новых прогонов)

Заранее спасибо.

1 Ответ

0 голосов
/ 05 декабря 2011

Из документации API SQLite Online Backup :

API онлайн-резервного копирования позволяет копировать содержимое одной базы данных в другую базу данных, перезаписывая исходное содержимоецелевой базы данных .Операция копирования может выполняться постепенно, и в этом случае исходную базу данных не нужно блокировать на время копирования, только на короткие периоды времени, когда она фактически читается.Это позволяет другим пользователям базы данных продолжать непрерывную работу во время резервного копирования онлайн-базы данных.

Насколько я могу судить, любые данные из предыдущих запусков будут потеряны, если, конечно, вы не загрузитепри запуске вашей программы в базу данных в памяти, так что она будет скопирована обратно в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...