2009-09-17 10 views
20

Ich habe eine Datenbank über SQLite in C++ erstellt.Speichern einer In-Memory-Datenbank auf Platte

Die Datenbank wurde im Speicher erstellt (mit dem Parameter ": memory:" anstelle eines Dateinamens), um ein sehr schnelles Verhalten zu erreichen.

Die Datenbank wird durch die folgenden Zeilen erstellt:

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

Mein Problem ist: Wie kann ich die In-Memory-Datenbank auf der Festplatte schreiben? (natürlich über c/C++).

Ich habe etwas über die Befehle sqlite ATTACH und DETACH gelesen, aber ich kann sie nur mit der interaktiven Shell sqlite (nicht aus c/C++ - Code) arbeiten lassen.

Greets.

Antwort

19

Schauen Sie sich dieses Beispiel: Loading and Saving In-Memory Databases

+0

Großartig! Das hat perfekt funktioniert: D – Giancarlo

+0

Ich suche C# -Dokumentation für den gleichen Zweck. Bitte teilen Sie, wenn Sie es wissen. –

+0

@Mubashar: Ich bin nicht vertraut mit C#. Ich glaube, es ist einfach, das Beispiel in C# umzuwandeln. Die 'sqlite3_backup_X'-Funktionen erledigen die Aufgabe. –

2

Sie mit der Transaktion Anweisung, bevor etwas auf den Tisch zu tun. Dies gewährleistet schnelles Handling und Rollbacks. Auf diese Weise müssen Sie die Datenbank nicht direkt im Speicher implementieren.

Verwandte Themen