Gibt es ein Qt SQLite-Plugin zum Speichern der Datenbank im RAM über VFS (zum Laden der Datenbank aus der Qt-Ressourcendatei)?

Ich habe welche:/test.sqlite3 database inside.qrc. Und das Ziel ist es, diese Datenbank direkt im Programm zu verwenden. Datenbank wird nur zum Lesen verwendet.

QSqlDatabase::setDatabase(":/test.sqlite3") funktioniert nicht, da Qt SQLite nicht für die Arbeit mit dem Qt-Dateisystem entwickelt wurde.

Eine der Lösungen kopiert die Datenbank von.qrcinD:\temdb.sqlite3 und benutze es vonQSqlDatabase::setDatabase("D:\\temdb.sqlite3"). Das Programm darf jedoch nicht mit dem Dateisystem des Betriebssystems funktionieren.

Zweite Lösung speichert:/dump.sql in Ressourcen, dann In-Memory-Datenbank von @ erstellQSqlDatabase::setDatabase(":memory:") und Importieren von Dump darin durch Lesen und Ausführen von Zeilen aus:/dump.sql. Aber diese Methode ist langsam.

Und schließlich ist es ein schwieriger, aber wahrer Weg, ein eigenes Qt-Plugin für SQLite mit @ zu erstelleVFS Implementierung zum Lesen der Datenbank aus dem RAM, wo wir Bytes von @ hab":/test.sqlite3".

Gibt es einen anderen einfachen Weg?

P.S. Ich habe schon alle fragen gelesen wieUmwandlung der In-Memory-SQLite-Datenbank in ein Blob / Char-Array und andere, kennzeichnen Sie es also nicht als doppelt. Meine Frage bezieht sich auf andere Methoden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage