2009-09-17 13 views
20

Creé una base de datos a través de sqlite en C++.Guardando en disco una base de datos en memoria

El db se ha creado en la memoria (utilizando el parámetro ": memoria:" inscribed de un nombre de archivo), para tener un comportamiento muy rápido.

La base de datos es creada por las siguientes líneas:

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); 

Mi problema es: ¿Cómo puedo escribir la base de datos en memoria en el disco? (a través de c/C++ por supuesto).

He leído algo sobre los comandos ATTACH y DETACH sqlite, pero puedo hacer que funcionen solo con el shell interactivo sqlite (no desde el código c/C++).

Saludos.

Respuesta

19
+0

Genial! Esto funcionó perfectamente: D – Giancarlo

+0

Estoy buscando la documentación C# para el mismo propósito. por favor comparte si sabes. –

+0

@Mubashar: No estoy familiarizado con C#. Creo que es fácil convertir el ejemplo en C#. Las funciones 'sqlite3_backup_X' hacen el trabajo. –

2

Uso declaración de transacciones antes de hacer nada a la mesa. Esto asegura un manejo rápido y retrocesos también. De esta manera, no necesita implementar la base de datos en la memoria directamente.

Cuestiones relacionadas