database
-
How do I install sql driver in qt and are there any ohter changes that I have to do? I am using wampserver and sql
I tried to run the following code and It is giving me this error
#include <QCoreApplication>
#include <QDebug>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);QSqlDatabase db = QSqlDatabase::addDatabase( "QMYSQL" ); db.setHostName( "localhost" ); db.setDatabaseName( "qtbook" ); db.setUserName( "user" ); db.setPassword( "password" ); if( db.open() ) { qDebug() << "connected"; } else { qDebug() << db.lastError().text(); } return a.exec();
}
error::
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl QSqlDatabase::~QSqlDatabase(void)" (_imp??1QSqlDatabase@@QEAA@XZ) referenced in function main
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __cdecl QSqlDatabase::open(void)" (_imp?open@QSqlDatabase@@QEAA_NXZ) referenced in function main
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: class QSqlError __cdecl QSqlDatabase::lastError(void)const " (_imp?lastError@QSqlDatabase@@QEBA?AVQSqlError@@XZ) referenced in function main
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl QSqlDatabase::setDatabaseName(class QString const &)" (_imp?setDatabaseName@QSqlDatabase@@QEAAXAEBVQString@@@Z) referenced in function main
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl QSqlDatabase::setUserName(class QString const &)" (_imp?setUserName@QSqlDatabase@@QEAAXAEBVQString@@@Z) referenced in function main
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl QSqlDatabase::setPassword(class QString const &)" (_imp?setPassword@QSqlDatabase@@QEAAXAEBVQString@@@Z) referenced in function main
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl QSqlDatabase::setHostName(class QString const &)" (_imp?setHostName@QSqlDatabase@@QEAAXAEBVQString@@@Z) referenced in function main
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: static class QSqlDatabase __cdecl QSqlDatabase::addDatabase(class QString const &,class QString const &)" (_imp?addDatabase@QSqlDatabase@@SA?AV1@AEBVQString@@0@Z) referenced in function main
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl QSqlError::~QSqlError(void)" (_imp??1QSqlError@@QEAA@XZ) referenced in function main
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: class QString __cdecl QSqlError::text(void)const " (_imp?text@QSqlError@@QEBA?AVQString@@XZ) referenced in function main
main.obj:-1: error: LNK2001: unresolved external symbol "__declspec(dllimport) public: static char * QSqlDatabase::defaultConnection" (_imp?defaultConnection@QSqlDatabase@@2PEADEA)
debug\Db.exe:-1: error: LNK1120: 11 unresolved externals
-
Hi,
First thing to do is to add
QT += sql
To your pro file
-
This post is deleted! -
@SGaist Its already added. What should I do next?
-
What error did you got next ?
What OS and Qt version are you running ?
-
Check the Database examples in Qt 4.x. Lots of good examples there that haven't changed much in Qt5.x.
Basically if the Qt related library/drivers aren't installed (for database model you need) where they can be found in your Qt path (check all assumptions on where you have installed Qt) the qmake and linker will have issues and report errors.
-Vince
-
@SGaist I am using windows 8 and QT 5.4
The errors I have mentioned in the post -
@Vince-Golubic How do I know whether the required libraries or drivers are installed?
And If they are not what should I do next? -
Did you re-run qmake after adding
QT += sql
?As for the additional libraries, you should have the MySQL client libraries installed.
-
@SGaist the console screen appears with the following output
QSqlDatabase : QMySQL driver not loaded
QSqlDatabase : available drivers: QSLQITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
"Driver not loaded Driver not loaded" -
Please, search the forum a bit, that problem has already been discussed many times.
You need to install the MySQL client libraries and add the path to them to your Run panel's PATH environment variable
-
@SGaist Can you just please tell me how to add path
-
Projects -> Run -> Run Environment -> edit the value of PATH