Existe algum plugin Qt SQLite para armazenar banco de dados na RAM pelo VFS (para carregar o banco de dados a partir do arquivo de recursos Qt)?
eu tenho alguns:/test.sqlite3
banco de dados dentro.qrc
. E o objetivo é usar diretamente esse banco de dados no programa. Banco de dados usado apenas para leitura.
QSqlDatabase::setDatabase(":/test.sqlite3")
não funciona, porque o Qt SQLite não foi projetado para trabalhar com o sistema de arquivos do Qt.
Uma das soluções é copiar o banco de dados de.qrc
para dentroD:\temdb.sqlite3
e usá-lo porQSqlDatabase::setDatabase("D:\\temdb.sqlite3")
. Mas o programa não deve funcionar com o sistema de arquivos do SO.
Segunda solução é armazenar:/dump.sql
recursos, criando um banco de dados na memóriaQSqlDatabase::setDatabase(":memory:")
e importando despejo nele, lendo e executando linhas de:/dump.sql
. Mas esse método é lento.
E, finalmente, a maneira mais difícil, mas verdadeira, é criar o próprio plugin Qt para SQLite comVFS
implementação para leitura de banco de dados da RAM, onde temos bytes de":/test.sqlite3"
.
Existe outra maneira fácil?
P.S. Eu já li todas as perguntas comoConvertendo banco de dados sqlite na memória para array blob / char e outro, portanto, não marque-o como duplicado. Minha pergunta é sobre quaisquer outros métodos.