Сохранение на диск базы данных в памяти - PullRequest
21 голосов
/ 17 сентября 2009

Я сделал базу данных через sqlite в c ++.

БД была создана в памяти (с использованием параметра ": memory:" вместо имени файла), чтобы иметь очень быстрое поведение.

База данных создается следующими строками:

sqlite3* mem_database;
if((SQLITE_OK == sqlite3_open(":memory:", &mem_database)){
    // The db has been correctly created and
    // I can do some stuff with it.
}
sqlite3_close(mem_database);

Моя проблема: как я могу записать базу данных в памяти на диск? (конечно, через c / c ++).

Я кое-что прочитал о командах sqlite ATTACH и DETACH, но я могу заставить их работать только с интерактивной оболочкой sqlite (не из кода c / c ++).

Greets.

Ответы [ 2 ]

20 голосов
/ 17 сентября 2009
2 голосов
/ 17 сентября 2009

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

...