Frage

Einer der angemessen verwendet sqlite3 ist "in-Memory-Datenbanken". Das klingt wie ein wirklich nützliches Werkzeug für meine C ++ Anwendungen. Hat jemand ein Beispiel davon, wie dies in C oder C ++ durchgeführt wird? Ich bin speziell für eine kanonische Weise suchen, mehr Flach Dateien in eine In-Memory-Datenbank zu schlürfen, dann tut einiger beitritt.

War es hilfreich?

Lösung

Es ist eigentlich ganz einfach. angeben, nur ‚: Speicher:‘ als Datenbankdateinamen, wenn eine Datenbank unter Verwendung des C / C ++ API öffnen. Es ist eine spezielle Konstante, dass der Motor erkennt. Das gleiche funktioniert eigentlich für andere Sprachen wie Python oder Ruby, da sie in der Regel wickeln nur die C / C ++ API. Siehe http://sqlite.org/c3ref/open.html für nähere Details.

Andere Tipps

Sie einfach die Datei öffnen: Speicher:. Und das sollte es tun (zumindest tut es in PHP)

Sie erwähnen, dass Sie in mehreren flachen Dateien lesen wollen und tun schließt sich an ihnen. Wenn es möglich ist, die flachen Dateien als SQLite-Datenbanken zu speichern, können Sie direkt mit beiden arbeiten von einem zum anderen Befestigungs:

ATTACH foo.db AS foo

Dann auf die Tabellen in foo beziehen sich wie folgt:

SELECT * FROM foo.users

So können Sie Ihre verbindet, ohne die Notwendigkeit für die Schaffung eines In-Memory-Datenbank tun können.

Wenn Sie SQLite wollen nicht temporäre Dateien wie Zeitschriften verwenden, beispiel, Sie wollen keine Dateiaktivität außer wenn Sie fordert manuell ein Verbinden, Trennen, anschließen oder entfernen. Dann nutzen Sie die folgenden beiden Pragmas zur Laufzeit, nachdem Sie eine Verbindung zu Ihrem „: memory:“. Datenbank

PRAGMA temp_store=MEMORY;
PRAGMA journal_mode=MEMORY;

Von den docs.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top