2009-09-17 5 views
20

Я создал базу данных через sqlite в C++.Сохранение на диске базы данных в памяти

db был создан в памяти (с использованием параметра «: memory:» insted of filename), чтобы иметь очень быстрое поведение.

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

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.

ответ

19

Заканчивать этот пример: Loading and Saving In-Memory Databases

+0

Отлично! Это сработало отлично: D – Giancarlo

+0

Я ищу документацию C# для той же цели. пожалуйста, поделитесь, если вы знаете. –

+0

@Mubashar: Я не знаком с C#. Я считаю, что легко преобразовать пример в C#. Функции 'sqlite3_backup_X' выполняют эту работу. –

2

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

Смежные вопросы