Есть ли какой-нибудь плагин Qt SQLite для хранения базы данных в оперативной памяти VFS (для загрузки базы данных из файла ресурсов Qt)?
у меня есть немного:/test.sqlite3
база данных внутри.qrc
, И цель состоит в том, чтобы напрямую использовать эту базу данных в программе. База данных используется только для чтения.
QSqlDatabase::setDatabase(":/test.sqlite3")
не работает, потому что Qt SQLite не предназначен для работы с файловой системой Qt.
Одним из решений является копирование базы данных из.qrc
вD:\temdb.sqlite3
и используя егоQSqlDatabase::setDatabase("D:\\temdb.sqlite3")
, Но программа не должна работать с файловой системой ОС.
Второе решение - хранение:/dump.sql
в ресурсах, а затем создает базу данных в памятиQSqlDatabase::setDatabase(":memory:")
и импортировать дамп в него, читая и выполняя строки из:/dump.sql
, Но этот метод медленный.
И, наконец, сложный, но верный способ - создать собственный плагин Qt для SQLite сVFS
реализация для чтения базы данных из оперативной памяти, где у нас есть байты":/test.sqlite3"
.
Есть ли другой простой способ?
Постскриптум Я уже прочитал все вопросы, какПреобразование базы данных sqlite в памяти в массив blob / char и другое, поэтому не помечайте его как дубликат. Мой вопрос о любых других методах.