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


  • Lifetime Qt Champion

    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?


  • Lifetime Qt Champion

    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?


  • Lifetime Qt Champion

    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"


  • Lifetime Qt Champion

    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


  • Lifetime Qt Champion

    Projects -> Run -> Run Environment -> edit the value of PATH


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.