c++ - programacion - ¿Cómo creo una base de datos en memoria sqllite3?
sqlite para linux (3)
Uno de los usos apropiados para sqlite3 es "bases de datos en memoria". Esto suena como una herramienta realmente útil para mis aplicaciones C ++. ¿Alguien tiene un ejemplo de cómo se hace esto en C o C ++? Estoy buscando específicamente una forma canónica para sorber varios archivos planos en una base de datos en memoria, y luego hacer algunas combinaciones.
En realidad es bastante fácil. Simplemente especifique '': memory:'' como el nombre de archivo de la base de datos cuando abra una base de datos usando la API C / C ++. Es una constante especial que el motor reconocerá. Lo mismo funciona para otros lenguajes como Python o Ruby, ya que normalmente solo envuelven la API de C / C ++. Ver http://sqlite.org/c3ref/open.html para detalles completos.
Simplemente abra el archivo: memory: y eso debería hacerlo (al menos lo hace en PHP).
Menciona que desea leer en varios archivos planos y unirlos. Si es posible almacenar los archivos planos como bases de datos SQLite, puede trabajar directamente con ambos adjuntando uno al otro:
ATTACH foo.db AS foo
A continuación, consulte las tablas en foo como sigue:
SELECT * FROM foo.users
De esta forma puede hacer sus uniones sin la necesidad de crear una base de datos en memoria.
Si desea que SQLite no use archivos temporales como diarios, por ejemplo, no desea ninguna actividad de archivo que no sea cuando solicita manualmente una conexión, desconecte, adjunte o desconecte. Luego use los siguientes dos pragmas en tiempo de ejecución después de conectarse a su base de datos ": memory:".
PRAGMA temp_store=MEMORY;
PRAGMA journal_mode=MEMORY;
De los documentos.