SQLITE Database in Project
-
wrote on 17 May 2011, 12:37 last edited by
[quote author="vsh.vshnu" date="1305635099"]Hi Volker,
Its simply
QString dbName="test.sqlite";Iam developing for meego in windows developement enviorment using Qt creator[/quote]
Try to use the absolute path. You can get the file path of the application executable using "QCoreApplication::applicationFilePath":http://doc.qt.nokia.com/latest/qcoreapplication.html#applicationFilePath
Cheers,
Leon -
wrote on 17 May 2011, 12:51 last edited by
[quote author="leon.anavi" date="1305635864"]
[quote author="vsh.vshnu" date="1305635099"]Hi Volker,
Its simply
QString dbName="test.sqlite";Iam developing for meego in windows developement enviorment using Qt creator[/quote]
Try to use the absolute path. You can get the file path of the application executable using "QCoreApplication::applicationFilePath":http://doc.qt.nokia.com/latest/qcoreapplication.html#applicationFilePath
Cheers,
Leon[/quote]
Hi Leon,
Thanks for the support ,
I have tried using the QCoreApplication::applicationFilePath
@QString dbName=QCoreApplication::applicationFilePath()+“\test.sqlite”;@
But it seems not opening the database.
All I wanted to pack the sqlite database inside my application so that i can install the applications as a single unit. -
wrote on 17 May 2011, 12:58 last edited by
[quote author="Volker" date="1305635745"]Do you have a test.sqlite that actually is packed in your setup?
[/quote][quote author="vsh.vshnu" date="1305636668"]
All I wanted to pack the sqlite database inside my application so that i can install the applications as a single unit.
[/quote]I think you should follow Volker's hint :) Please read "MeeGo Packaging/Guidelines":http://wiki.meego.com/Packaging/Guidelines As you probably know MeeGo apps are distributed as rpm so you have to include your database into the rpm.
-
wrote on 17 May 2011, 13:04 last edited by
[quote author="leon.anavi" date="1305637109"][quote author="Volker" date="1305635745"]Do you have a test.sqlite that actually is packed in your setup?
[/quote][quote author="vsh.vshnu" date="1305636668"]
All I wanted to pack the sqlite database inside my application so that i can install the applications as a single unit.
[/quote]I think you should follow Volker's hint :) Please read "MeeGo Packaging/Guidelines":http://wiki.meego.com/Packaging/Guidelines As you probably know MeeGo apps are distributed as rpm so you have to include your database into the rpm.
[/quote]
Thanks for the help.. i will look into it..
Thanks & Regards,
Vsh.Vshnu -
SQLite databases cannot be stored in the Qt resource system. You must put it into regular files and distribute them along your application.
The reason is simple: The database name is just the path to the file. Qt does not intercept the file name but hands it over directly to the SQLite functions (by calling toUtf8() on the “path”), which in turn try to open that file – and will eventually fail, of course.
wrote on 18 Feb 2017, 10:38 last edited by@goetz
some time , we need store a read-only database file in the QRC file. just need read no need change.
store in qrc file will avoid use change ,delete....etc it. and use database file (qsqlite3 ) will be fast get query result.now qt version is 5.8. can we do it ?
best regards,
-
@goetz
some time , we need store a read-only database file in the QRC file. just need read no need change.
store in qrc file will avoid use change ,delete....etc it. and use database file (qsqlite3 ) will be fast get query result.now qt version is 5.8. can we do it ?
best regards,
Hi
If small database, you can just copy
it to file system upon run and
open it.Just override it each time.
I do not think its possible to have a db in qrc.
-
Hi
If small database, you can just copy
it to file system upon run and
open it.Just override it each time.
I do not think its possible to have a db in qrc.
-
@mrjj yes , you are right . we can do as your way. but i think if the db file in inside the qrc file will be more safety than copy out.
Some time , some data , we don't want some body to get it .@cawlfj
Well its not impossible to still dig it out using a hex editor.
For dbs, something like
https://www.zetetic.net/sqlcipher/about/
might be better.
Maybe you can use the dump trick to upload to a :mem based db.
http://stackoverflow.com/questions/3826552/in-python-how-can-i-load-a-sqlite-db-completely-to-memory-before-connecting-to
Disclaimer: i never tried this. -
wrote on 3 Oct 2019, 18:08 last edited by EdgarDinz 10 Mar 2019, 18:10
Consider using
QTemporaryFile::createNativeFile
:QTemporaryFile *QTemporaryFile::createNativeFile(QFile &file) QTemporaryFile *QTemporaryFile::createNativeFile(const QString &fileName)
then you can pass a resource path as
fileName
. -
SQLite databases cannot be stored in the Qt resource system. You must put it into regular files and distribute them along your application.
The reason is simple: The database name is just the path to the file. Qt does not intercept the file name but hands it over directly to the SQLite functions (by calling toUtf8() on the “path”), which in turn try to open that file – and will eventually fail, of course.
wrote on 2 Dec 2020, 11:05 last edited byThis post is deleted!