QSqlDatabase: QSQLITE driver not loaded [SOLVED]
-
I'm creating app that connects to sqlite db
here is the error getting when build & run@
QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:
@here is the code
@
QSqlDatabase mydb;
void connClose(){
mydb.close();
}
bool connOpen(){
mydb = QSqlDatabase::addDatabase("QSQLITE");
mydb.setDatabaseName("/home/ubuntu/test/newdb");
if (!mydb.open()){
qDebug()<<("Not Conected");
return false;
}
else{
qDebug()<<("DB Conected");
return true;
}
}
@@
connOpen();
if(mydb.isOpen()){
ui->label_3->setText("Connected!");
}else{
ui->label_3->setText("Connection Fail!");
}
@files in sqldrivers directory
@
ubuntu@ubuntu:/usr/local/qt/plugins/sqldrivers$ ls
libqsqlite.a libqsqlite.prl
@Other Details:
@Qt 4.8.6
QtCreator 2.4.1
armv7
lubuntu@how to solve this problem. thanks!!
-
You are missing the libraries SQLite on your box. Ensure that all the required libraries for libraries are in path. Sometime some due to version mismatch in the library also you will get this error. There are many posts like "here":http://qt-project.org/forums/viewthread/36656 [qt-project.org]. They will surely solve your problem.
-
Hi,
Looks like you are using a static build, did you properly import the sqlite plugin ?
-
Hello,
Have you try to open database in the main class?
In the my project with Android if I don't open and close the database in main class then I can't open the db in another class, but the driver of sqlite exists.
-
can you please guide me to
- generate missing the libraries
- import the sqlite plugin
my downloaded qt 4.8.6 source is here:
(qt-everywhere-opensource-src-4.8.6.tar.gz)
@/home/ubuntu/Downloads/qt-src@statically built Qt resides here :
@/usr/local/qt@@
ubuntu@ubuntu:~$ dpkg -l | grep sqlite
ii libqt4-sql-sqlite 4:4.8.1-0ubuntu4.8 Qt 4 SQLite 3 database driver
ii libsqlite3-0 3.7.9-2ubuntu1.1 SQLite 3 shared library
ii libsqlite3-dev 3.7.9-2ubuntu1.1 SQLite 3 development files
ii sqlite3 3.7.9-2ubuntu1.1 Command line interface for SQLite 3
@-thanks
-
There's no missing libraries, you have built Qt statically so the plugin is also built statically.
Search for Q_IMPORT_PLUGIN in the documentation for more information about the static use of a Qt plugin.
-
thanks for suggessions...
i've add the lines .pro file but getting the same error
@QT += core gui sql
LIBS += -L"/usr/local/qt/plugins/sqldrivers" -lqsqlite
QTPLUGIN += qsqlite@my /usr/local/qt/plugins/sqldrivers directory only contains libqsqlite.a libqsqlite.prl files
dosen't it require any other files? -
What about Q_IMPORT_PLUGIN in your code ?
No it doesn't, libqsqlite.a is the library containing the plugin
-
thanks lot...
@Q_IMPORT_PLUGIN(qsqlite)@
done the job...just for get known
i've already installed sqlite3 libsqlite3-dev
does it help qt to works or Qt handle sqlite it self?why is my self installed (general way) Qt5.3 sqldrivers directory contains more file then above i posted?
thank you again for great help...
-
Depends on how you configured Qt. Qt comes with it's own version of sqlite and IIRC when building your own version you have to tell configure to use the system's available sqlite if you don't want to use Qt's version.
Because you didn't install all related dev packages so to the auto detection failed for the other drivers and thus you only have the sqlite plugin.
-
got it
thank you -
This post is deleted!
-
@SGaist
Q_IMPORT_PLUGIN(qsqlite)
/home/user/Downloads/splinechart/main.cpp:41: error: undefined reference to 'qt_static_plugin_qsqlite()' -
@Avtansh-Sharma : ?
-
Do you have a static build of Qt ?
-
Then why are you using the instructions for static plugins ? The SQLite plugin is not statically built.