Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Building database driver, IT difficulties



  • I've build database drivers before for Qt, however these were on different systems. I'm presently working with a client supplied laptop. The laptop is a Windows 10 laptop with:

    Qt Creator 4.4.1
    Based on Qt 5.9.2 (MSVC 2015, 32 bit)
    

    The software I'm working on is using Qt 5.9.2 and Microsoft Visual Studio 2015, 32 bit.

    I know it's all very old and IMHO really should be brought up to date, however its not my decision, what makes things worse is that the IT department have locked down the laptop so there are various restrictions. I don't know why but I have been granted Admin permissions on the laptop but even this is limited in that I cannot modify system environment variables and neither can software I have installed.

    Its crazy, but I have to work with it. I'm need to build the MariaDB SQL driver for QT. I've been following:
    https://doc.qt.io/qt-5/sql-driver.html#driverwithqt

    Parts of this I can get working by putting the full path before the file name, however this fails with certain steps, presently I'm stuck with make install

    Where is make located?

    I've searched the Qt tree and can only find:

    C:\Qt\Qt5.9.2\5.9.2\Src\qtwebengine\src\3rdparty\chromium\third_party\libvpx\source\libvpx\build
    C:\Qt\Qt5.9.2\5.9.2\Src\qtwebengine\src\3rdparty\chromium\tools\gyp\text
    C:\Qt\Qt5.9.2\5.9.2\Src\qtwebengine\src\3rdparty\chromium\testing\gmock
    C:\Qt\Qt5.9.2\5.9.2\Src\qtwebengine\src\3rdparty\chromium\testing\gtest

    I can't find make in the Microsoft Visual Studio 14.0 installation tree.



  • @SPlatten said in Building database driver, IT difficulties:

    its like mission impossible, the laptop is so locked down its very difficult. I've cleaned out the cache:

    It is not easy but follow this https://forum.qt.io/post/656068 and it should work


  • Lifetime Qt Champion

    @SPlatten said in Building database driver, IT difficulties:

    Where is make located?

    According to the docs it's nmake



  • @Christian-Ehrlicher , thats not what that page I posted the link is asking for....

    cd $QTDIR/qtbase/src/plugins/sqldrivers/mysql
    make install
    

  • Lifetime Qt Champion

    First you should tell us if you want to compile the whole Qt or only a single plugin

    But nonetheless it's nmake and not make when you use VisualStudio.



  • @Christian-Ehrlicher , I thought I'd made it clear I am trying to build the SQL plugin driver for Qt. I am following the link:
    https://doc.qt.io/qt-5/sql-driver.html#driverwithqt

    What is vague about this? As previously stated the documentation calls:

    cd $QTDIR/qtbase/src/plugins/sqldrivers/mysql
    make install
    

  • Lifetime Qt Champion

    So did you call qmake, were the mysql libs and include paths found and did you actually compile the driver like explained?

    Also why do you want to build the plugin for 5.9 on your own? It was still shipped there afair.


  • Moderators

    @SPlatten I would actually suggest using jom instead of nmake, as nmake is single threaded

    Stay with nmake for now ;-)



  • @J-Hilk , its like mission impossible, the laptop is so locked down its very difficult. I've cleaned out the cache:

    rm -R config.*
    

    Then run nmake. result is:

    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            cd sqlite\ && ( if not exist Makefile c:\Qt\Qt5.9.2\5.9.2\msvc2015\bin\qmake.exe -o Makefile C:\Qt\Qt5.9.2\5.9.2\Src\qtbase\src\plugins\sqldrivers\sqlite\sqlite.pro ) && "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\nmake.exe" -f Makefile
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\nmake.exe" -f Makefile.Release all
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            rc /NOLOGO -DUNICODE -D_UNICODE -DWIN32 -DNDEBUG -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_OMIT_COMPLETE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_RTREE -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -D_WINDLL -fo .obj\release\qsqlite_resource.res qsqlite_resource.rc
    qsqlite_resource.rc(1) : fatal error RC1015: cannot open include file 'windows.h'.
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\rc.EXE"' : return code '0x1'
    Stop.
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\nmake.exe"' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: 'cd' : return code '0x2'
    Stop.
    

  • Lifetime Qt Champion

    You're dev environment is not properly set up. You did not open it via 'Visual Studio command prompt' so the variables for your compiler are not there. Nothing Qt-related.



  • @Christian-Ehrlicher , where would I find that option? I've right clicked in the File Explorer and the only options appearing in the context menu are:

    Open with Visual Studio
    Git GUI Here
    Git Bash Here
    

    Maybe something else the installer couldn't complete due to IT restrictions?



  • @SPlatten said in Building database driver, IT difficulties:

    its like mission impossible, the laptop is so locked down its very difficult. I've cleaned out the cache:

    It is not easy but follow this https://forum.qt.io/post/656068 and it should work



  • @KroMignon , excellent, thank you.



  • @SPlatten said in Building database driver, IT difficulties:

    excellent, thank you.

    your welcome



  • @KroMignon , now it all appears to have built without any issues, I'm using source that I wrote on my iMAC when doing the same thing, have put in the database details using driver name QMYSQL, but when I try to connect I get the output:

    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
    


  • @SPlatten
    Whenever you get QMYSQL driver not loaded, start by setting environment variable QT_DEBUG_PLUGINS=1, run application, look at diagnostic output, especially at end.



  • @JonB said in Building database driver, IT difficulties:

    QT_DEBUG_PLUGINS

    Thats easier said than done, on this system I cannot set environment variables....



  • @SPlatten said in Building database driver, IT difficulties:

    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

    I guess the mysql-connector dynamic library (libmysql.dll) is not in your path



  • @SPlatten said in Building database driver, IT difficulties:

    Thats easier said than done, on this system I cannot set environment variables....

    That is an unusual statement, I have not heard of such a system. You will have problems if you cannot set environment variables....

    You should be able to do so. Even if you have to write a one-line "wrapper" program....



  • @SPlatten said in Building database driver, IT difficulties:

    Thats easier said than done, on this system I cannot set environment variables....

    You can do it with Qt-Creator: Projects / Build & Run, Select "Run", than in "Run Settings"/Environment you can add as many environment variable as you want => cf. https://doc.qt.io/qtcreator/creator-project-settings-environment.html



  • @JonB , tell me about it, please read the first post on this thread for more information.



  • @SPlatten
    If you mean

    I cannot modify system environment variables

    there is no need to set a system variable, only an environment variable for the duration of running your program. Either in a Command Prompt, or as @KroMignon wrote in Qt Creator if you are running from there. Or in a .bat script, or in a one-line "wrapper" C/C++ program. heck, you're running nmake, that I believe sets environment variables, you could even do so from there....

    And, depending on when Qt produces that runtime error, if it's on the statement which creates a QSqlDatabase, as I think it might be, then you can just set the environment variable in the Qt program you are writing beforehand.



  • @JonB , setting an environment variable doesn't help when Qt Creator is running at the system level. Any environment variable added to the console, is only visible to the environment of the console.



  • @SPlatten
    I have tried to show you a number of places you can set the environment variable. If you really say you cannot from Qt Creator (I don't understand why not and I don't understand what you are saying), try any of the others....



  • @SPlatten said in Building database driver, IT difficulties:

    setting an environment variable doesn't help when Qt Creator is running at the system level. Any environment variable added to the console, is only visible to the environment of the console.

    Have you only try it out?
    Based on your first post on this thread, you are using Qt Creator 4.4.1.
    Settings environment variables with QtCreator works for me, on any system I am using (WindowsXP/7/10 and Linux).
    So I cannot imagine it will not work for you.



  • @KroMignon , just created the variable and verified that it is there using EXPORT, rebuilt project in Qt Creator and executed, no new / additional output in Application Output and the console just contains:

    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
    


  • @SPlatten
    What is the name of the environment variable, and what is its value?



  • @SPlatten said in Building database driver, IT difficulties:

    just created the variable and verified that it is there using EXPORT, rebuilt project in Qt Creator and executed, no new / additional output in Application Output and the console just contains:

    You don't have to recompile your application, just setup the environment variable for you project
    e1d94075-09a2-4dcb-bfd2-9c78babf80fe-image.png

    And the run the application with F5 or Ctrl+R, that's it.

    But as I have written before, I am quiet sure your problem is that the mysql-connector dynamic library is not in your path.
    The easiest way to solve this is to copy libmysql.dll in to Qt lib path, which should be for Qt 5.9.2 ==> C:\Qt\5.9.2\msvc2015\bin\



  • @KroMignon thank you...again!

    This is the output from my application:

    Client name - Training Server
     
    Initialising application core...
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms" ...
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qdirect2d.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qdirect2d.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "direct2d"
            ]
        },
        "className": "QWindowsDirect2DIntegrationPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qdirect2d.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qdirect2dd.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qdirect2dd.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "direct2d"
            ]
        },
        "className": "QWindowsDirect2DIntegrationPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("direct2d")
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qminimal.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qminimal.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "minimal"
            ]
        },
        "className": "QMinimalIntegrationPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qminimal.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qminimald.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qminimald.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "minimal"
            ]
        },
        "className": "QMinimalIntegrationPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("minimal")
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qoffscreen.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qoffscreen.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "offscreen"
            ]
        },
        "className": "QOffscreenIntegrationPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qoffscreen.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qoffscreend.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qoffscreend.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "offscreen"
            ]
        },
        "className": "QOffscreenIntegrationPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("offscreen")
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qwindows.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qwindows.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
               "windows"
            ]
        },
        "className": "QWindowsIntegrationPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qwindows.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qwindowsd.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qwindowsd.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "windows"
            ]
        },
        "className": "QWindowsIntegrationPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("windows")
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Users/simon.platten/Documents/vechicle-training-server-application/build-training-server-application-Desktop_Qt_5_9_2_MSVC2015_32bit-Debug/debug/platforms" ...
    loaded library "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qwindowsd.dll"
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platformthemes" ...
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Users/simon.platten/Documents/vechicle-training-server-application/build-training-server-application-Desktop_Qt_5_9_2_MSVC2015_32bit-Debug/debug/platformthemes" ...
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/styles" ...
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Users/simon.platten/Documents/vechicle-training-server-application/build-training-server-application-Desktop_Qt_5_9_2_MSVC2015_32bit-Debug/debug/styles" ...
    Connecting to database...
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers" ...
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlite.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlite.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QSQLITE"
            ]
        },
        "className": "QSQLiteDriverPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlite.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlited.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlited.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QSQLITE"
            ]
        },
        "className": "QSQLiteDriverPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("QSQLITE")
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysql.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysql.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QMYSQL3",
                "QMYSQL"
            ]
        },
        "className": "QMYSQLDriverPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysql.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysqld.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysqld.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QMYSQL3",
                "QMYSQL"
            ]
        },
        "className": "QMYSQLDriverPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("QMYSQL3", "QMYSQL")
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlodbc.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlodbc.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QODBC3",
                "QODBC"
            ]
        },
        "className": "QODBCDriverPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlodbc.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlodbcd.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlodbcd.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QODBC3",
                "QODBC"
            ]
        },
        "className": "QODBCDriverPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("QODBC3", "QODBC")
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlpsql.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlpsql.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QPSQL7",
                "QPSQL"
            ]
        },
        "className": "QPSQLDriverPlugin",
        "debug": false,
       "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlpsql.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlpsqld.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlpsqld.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QPSQL7",
                "QPSQL"
            ]
        },
        "className": "QPSQLDriverPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("QPSQL7", "QPSQL")
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Users/simon.platten/Documents/vechicle-training-server-application/build-training-server-application-Desktop_Qt_5_9_2_MSVC2015_32bit-Debug/debug/sqldrivers" ...
    Cannot load library C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers\qsqlmysqld.dll: The specified module could not be found.
    QLibraryPrivate::loadPlugin failed on "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysqld.dll" : "Cannot load library C:\\Qt\\Qt5.9.2\\5.9.2\\msvc2015\\plugins\\sqldrivers\\qsqlmysqld.dll: The specified module could not be found."
    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
    


  • @SPlatten said in Building database driver, IT difficulties:

    Cannot load library C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers\qsqlmysqld.dll: The specified module could not be found.

    QLibraryPrivate::loadPlugin failed on "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysqld.dll" : "Cannot load library C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers\qsqlmysqld.dll: The specified module could not be found."

    QSqlDatabase: QMYSQL driver not loaded

    It looks like your are running debug version, but did not build plugin for debug, only release build is done.
    I think you have to (re)build mysql plugin and add "CONFIG+=debug" to ensure building version of plugin.
    Something like:

    qmake "CONFIG+=debug" -- MYSQL_INCDIR=c:/mysql-connector-6.1.5/include MYSQL_LIBDIR=c:/mysql-connector-6.1.5/lib
    


  • @KroMignon , thanks again!



  • @KroMignon , here is the output from the latest modifications, this time it should be building release then debug:

    Running configuration tests...
    Checking for DB2 (IBM)... no
    Checking for InterBase... no
    Checking for MySQL... no
    Checking for OCI (Oracle)... no
    Checking for ODBC... yes
    Checking for PostgreSQL... no
    Checking for SQLite (version 2)... no
    Checking for TDS (Sybase)... no
    Done running configuration tests.
     
    Configure summary:
     
    Qt Sql:
      DB2 (IBM) .............................. no
      InterBase .............................. no
      MySql .................................. no
      OCI (Oracle) ........................... no
      ODBC ................................... yes
      PostgreSQL ............................. no
      SQLite2 ................................ no
      SQLite ................................. yes
        Using system provided SQLite ......... no
      TDS (Sybase) ........................... no
     
    Qt is now configured for building. Just run 'nmake'.
    Once everything is built, Qt is installed.
    You should NOT run 'nmake install'.
    Note that this build cannot be deployed to other machines or devices.
     
    Prior to reconfiguration, make sure you remove any leftovers from
    the previous build.
     
    Debug...
     
    Running configuration tests...
    Done running configuration tests.
     
    Configure summary:
     
    Qt Sql:
      DB2 (IBM) .............................. no
      InterBase .............................. no
      MySql .................................. no
      OCI (Oracle) ........................... no
      ODBC ................................... yes
      PostgreSQL ............................. no
      SQLite2 ................................ no
      SQLite ................................. yes
        Using system provided SQLite ......... no
      TDS (Sybase) ........................... no
     
    Qt is now configured for building. Just run 'nmake'.
    Once everything is built, Qt is installed.
    You should NOT run 'nmake install'.
    Note that this build cannot be deployed to other machines or devices.
     
    Prior to reconfiguration, make sure you remove any leftovers from
    the previous build.
     
    Running nmake
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            cd odbc\ && ( if not exist Makefile c:\Qt\Qt5.9.2\5.9.2\msvc2015\bin\qmake.exe -o Makefile C:\Qt\Qt5.9.2\5.9.2\Src\qtbase\src\plugins\sqldrivers\odbc\odbc.pro "CONFIG+=debug" ) && "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile.Release all
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile.Debug all
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            cd sqlite\ && ( if not exist Makefile c:\Qt\Qt5.9.2\5.9.2\msvc2015\bin\qmake.exe -o Makefile C:\Qt\Qt5.9.2\5.9.2\Src\qtbase\src\plugins\sqldrivers\sqlite\sqlite.pro "CONFIG+=debug" ) && "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile.Release all
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile.Debug all
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
    Running nmake install
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            cd odbc\ && ( if not exist Makefile c:\Qt\Qt5.9.2\5.9.2\msvc2015\bin\qmake.exe -o Makefile C:\Qt\Qt5.9.2\5.9.2\Src\qtbase\src\plugins\sqldrivers\odbc\odbc.pro "CONFIG+=debug" ) && "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile install
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile.Release install
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            copy /y ..\plugins\sqldrivers\qsqlodbc.dll C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers\qsqlodbc.dll
            1 file(s) copied.
            copy /y ..\plugins\sqldrivers\qsqlodbc.pdb C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers\qsqlodbc.pdb
            1 file(s) copied.
            c:\Qt\Qt5.9.2\5.9.2\msvc2015\bin\qmake.exe -install qinstall C:\Qt\Qt5.9.2\5.9.2\Src\qtbase\src\plugins\sqldrivers\lib\cmake\Qt5Sql\Qt5Sql_QODBCDriverPlugin.cmake C:\Qt\Qt5.9.2\5.9.2\msvc2015\lib\cmake\Qt5Sql\Qt5Sql_QODBCDriverPlugin.cmake
            "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile.Debug install
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            copy /y ..\plugins\sqldrivers\qsqlodbcd.dll C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers\qsqlodbcd.dll
            1 file(s) copied.
            copy /y ..\plugins\sqldrivers\qsqlodbcd.pdb C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers\qsqlodbcd.pdb
            1 file(s) copied.
            c:\Qt\Qt5.9.2\5.9.2\msvc2015\bin\qmake.exe -install qinstall C:\Qt\Qt5.9.2\5.9.2\Src\qtbase\src\plugins\sqldrivers\lib\cmake\Qt5Sql\Qt5Sql_QODBCDriverPlugin.cmake C:\Qt\Qt5.9.2\5.9.2\msvc2015\lib\cmake\Qt5Sql\Qt5Sql_QODBCDriverPlugin.cmake
            cd sqlite\ && ( if not exist Makefile c:\Qt\Qt5.9.2\5.9.2\msvc2015\bin\qmake.exe -o Makefile C:\Qt\Qt5.9.2\5.9.2\Src\qtbase\src\plugins\sqldrivers\sqlite\sqlite.pro "CONFIG+=debug" ) && "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile install
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile.Release install
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            copy /y ..\plugins\sqldrivers\qsqlite.dll C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers\qsqlite.dll
            1 file(s) copied.
            copy /y ..\plugins\sqldrivers\qsqlite.pdb C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers\qsqlite.pdb
            1 file(s) copied.
            C:\Qt\Qt5.9.2\5.9.2\msvc2015\bin\qmake.exe -install qinstall C:\Qt\Qt5.9.2\5.9.2\Src\qtbase\src\plugins\sqldrivers\lib\cmake\Qt5Sql\Qt5Sql_QSQLiteDriverPlugin.cmake C:\Qt\Qt5.9.2\5.9.2\msvc2015\lib\cmake\Qt5Sql\Qt5Sql_QSQLiteDriverPlugin.cmake
            "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile.Debug install
     
    Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
     
            copy /y ..\plugins\sqldrivers\qsqlited.dll C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers\qsqlited.dll
            1 file(s) copied.
            copy /y ..\plugins\sqldrivers\qsqlited.pdb C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers\qsqlited.pdb
            1 file(s) copied.
            C:\Qt\Qt5.9.2\5.9.2\msvc2015\bin\qmake.exe -install qinstall C:\Qt\Qt5.9.2\5.9.2\Src\qtbase\src\plugins\sqldrivers\lib\cmake\Qt5Sql\Qt5Sql_QSQLiteDriverPlugin.cmake C:\Qt\Qt5.9.2\5.9.2\msvc2015\lib\cmake\Qt5Sql\Qt5Sql_QSQLiteDriverPlugin.cmake
    

    Same result, still not loading driver.



  • @SPlatten said in Building database driver, IT difficulties:

    here is the output from the latest modifications, this time it should be being release then debug:

    Checking for MySQL... no

    I think you have not set the environment variable as required for your build.
    As you are building for 32 bit, you should do something like:

    "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
    

    And, of course, download the 32 bit version of MySQL connector!



  • @KroMignon , just checked the source for vcvarsall.bat, if no command line arguments are passed then it defaults to x86.

    This is my build batch file:

    echo Cleaning cache
    @rm -R config.*
    echo Calling vcvarsall.bat
    @call "c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat"
    echo Running qmake
    echo Release...
    @c:/Qt/Qt5.9.2/5.9.2/msvc2015/bin/qmake -- MYSQL_INCDIR="/c/Program Files (x86)/MariaDB 10.5/include/mysql" MYSQL_LIBDIR="/c/Program Files (x86)/MariaDB 10.5/lib" MYSQL_LIBS="-lmariadb"
    echo Debug...
    @c:/Qt/Qt5.9.2/5.9.2/msvc2015/bin/qmake "CONFIG+=debug" -- MYSQL_INCDIR="/c/Program Files (x86)/MariaDB 10.5/include/mysql" MYSQL_LIBDIR="/c/Program Files (x86)/MariaDB 10.5/lib" MYSQL_LIBS="-lmariadb"
    echo Running nmake
    @nmake
    echo Running nmake install
    @nmake install
    


  • @SPlatten AFAIK, to build MySQL plugin you need MySQL Connector/C 6.1.5 or less (https://downloads.mysql.com/archives/c-c/).
    If you are using a newer version MySQL Connector/C, SQL-Transaction will not work, for example (it takes me days to find that out).

    I am not sure it works with MariaDB Connector.



  • @KroMignon , I'm not sure:

    @c:/Qt/Qt5.9.2/5.9.2/msvc2015/bin/qmake -- MYSQL_INCDIR="/c/Program Files (x86)/MariaDB 10.5/include/mysql" MYSQL_LIBDIR="/c/Program Files (x86)/MariaDB 10.5/lib" MYSQL_LIBS="-lmariadb"
    

    Is correct ? Qt doesn't support mariadb, its not listed in the list of configurations, so shouldn't the lib name at the end be:

    @c:/Qt/Qt5.9.2/5.9.2/msvc2015/bin/qmake -- MYSQL_INCDIR="/c/Program Files (x86)/MariaDB 10.5/include/mysql" MYSQL_LIBDIR="/c/Program Files (x86)/MariaDB 10.5/lib" MYSQL_LIBS="-lmysql"
    

    Also, no where in the above does the actual location of the connector c download feature, its referencing the installation of MariaDB itself not the connector.



  • @SPlatten said in Building database driver, IT difficulties:

    I'm not sure:

    I don't understand why you ask for help and don't try out what people told you to do.
    I have used "MySQL Connector/C 6.1.5" and it works fine.
    You try to use MariaDB Connector and qmake do NOT enable MySQL plugin.

    So up to you to continue on this way or to do what I told you to do.



  • @KroMignon , Does the MySQL Connector work with Maria DB ? I will try downloading the mysql connector.



  • @KroMignon , I downloaded and installed the MySQL connector, selecting version 6.1.5, same problem, it does not connect.

    Initialising application core...
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms" ...
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qdirect2d.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qdirect2d.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "direct2d"
            ]
        },
        "className": "QWindowsDirect2DIntegrationPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qdirect2d.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qdirect2dd.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qdirect2dd.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "direct2d"
            ]
        },
        "className": "QWindowsDirect2DIntegrationPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("direct2d")
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qminimal.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qminimal.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "minimal"
            ]
        },
        "className": "QMinimalIntegrationPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qminimal.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qminimald.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qminimald.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "minimal"
            ]
        },
        "className": "QMinimalIntegrationPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("minimal")
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qoffscreen.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qoffscreen.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "offscreen"
            ]
        },
        "className": "QOffscreenIntegrationPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qoffscreen.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qoffscreend.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qoffscreend.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "offscreen"
            ]
        },
        "className": "QOffscreenIntegrationPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("offscreen")
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qwindows.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qwindows.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "windows"
            ]
        },
        "className": "QWindowsIntegrationPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qwindows.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qwindowsd.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qwindowsd.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "windows"
            ]
        },
        "className": "QWindowsIntegrationPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("windows")
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Users/simon.platten/Documents/vechicle-training-server-application/build-training-server-application-Desktop_Qt_5_9_2_MSVC2015_32bit-Debug/debug/platforms" ...
    loaded library "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platforms/qwindowsd.dll"
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/platformthemes" ...
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Users/simon.platten/Documents/vechicle-training-server-application/build-training-server-application-Desktop_Qt_5_9_2_MSVC2015_32bit-Debug/debug/platformthemes" ...
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/styles" ...
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Users/simon.platten/Documents/vechicle-training-server-application/build-training-server-application-Desktop_Qt_5_9_2_MSVC2015_32bit-Debug/debug/styles" ...
    Connecting to database...
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers" ...
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlite.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlite.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QSQLITE"
            ]
        },
        "className": "QSQLiteDriverPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlite.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlited.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlited.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QSQLITE"
            ]
        },
        "className": "QSQLiteDriverPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("QSQLITE")
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysql.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysql.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QMYSQL3",
                "QMYSQL"
            ]
        },
        "className": "QMYSQLDriverPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysql.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysqld.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysqld.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QMYSQL3",
                "QMYSQL"
            ]
        },
        "className": "QMYSQLDriverPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("QMYSQL3", "QMYSQL")
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlodbc.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlodbc.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QODBC3",
                "QODBC"
            ]
        },
        "className": "QODBCDriverPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlodbc.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlodbcd.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlodbcd.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QODBC3",
                "QODBC"
            ]
        },
        "className": "QODBCDriverPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("QODBC3", "QODBC")
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlpsql.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlpsql.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QPSQL7",
                "QPSQL"
            ]
        },
        "className": "QPSQLDriverPlugin",
        "debug": false,
        "version": 329986
    }
     
     
    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlpsql.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
             not a plugin
    QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlpsqld.dll"
    Found metadata in lib C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlpsqld.dll, metadata=
    {
        "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
        "MetaData": {
            "Keys": [
                "QPSQL7",
                "QPSQL"
            ]
        },
        "className": "QPSQLDriverPlugin",
        "debug": true,
        "version": 329986
    }
     
     
    Got keys from plugin meta data ("QPSQL7", "QPSQL")
    QFactoryLoader::QFactoryLoader() checking directory path "C:/Users/simon.platten/Documents/vechicle-training-server-application/build-training-server-application-Desktop_Qt_5_9_2_MSVC2015_32bit-Debug/debug/sqldrivers" ...
    Cannot load library C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers\qsqlmysqld.dll: The specified module could not be found.
    QLibraryPrivate::loadPlugin failed on "C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysqld.dll" : "Cannot load library C:\\Qt\\Qt5.9.2\\5.9.2\\msvc2015\\plugins\\sqldrivers\\qsqlmysqld.dll: The specified module could not be found."
    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
    

    I just checked the path:

    C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers
    

    Whilst this folder does contain 12 files, 8 of these files in this folder have an up to date timestamp, except:

    qsqlmysql.dll
    qsqlmysqld.dll
    qsqlpsql.dll
    qsqlpsqld.dll
    

    Which all have a date timestamp of:

    02/10/2017 07:06
    


  • @SPlatten said in Building database driver, IT difficulties:

    QFactoryLoader::QFactoryLoader() checking directory path "C:/Users/simon.platten/Documents/vechicle-training-server-application/build-training-server-application-Desktop_Qt_5_9_2_MSVC2015_32bit-Debug/debug/sqldrivers" ...

    Cannot load library C:\Qt\Qt5.9.2\5.9.2\msvc2015\plugins\sqldrivers\qsqlmysqld.dll: The specified module could not be found.

    I downloaded and installed the MySQL connector, selecting version 6.1.5, same problem, it does not connect.

    Do did you do exactly?

    • Did you re-run qmake with right parameters?
    • Did you check if MySQL plugin is now enabled?
    • did you run "nmake clean & nmake build & nmake installl" ?

    You seems to like batch file, it should look like this:

    echo Cleaning cache
    @rm -R config.*
    echo Calling vcvarsall.bat
    @call "c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat"
    echo Configure Qt
    @call "c:/Qt/Qt5.9.2/5.9.2/msvc2015/bin/qtenv2.bat"
    echo Running qmake
    @qmake -- MYSQL_INCDIR="c:/mysql-connector-6.1.5/include" MYSQL_LIBDIR="c:/mysql-connector-6.1.5/lib"
    @rem I add a pause here to be able to check if MySQL plugin is enabled
    @pause 
    echo Clean old build
    @nmake clean
    echo Running nmake
    @nmake
    echo Running nmake install
    @nmake install
    

    EDIT: add nmake clean to ensure (re)build will be done


  • Lifetime Qt Champion

    @SPlatten said in Building database driver, IT difficulties:

    "The plugin 'C:/Qt/Qt5.9.2/5.9.2/msvc2015/plugins/sqldrivers/qsqlmysql.dll' uses incompatible Qt library. (Cannot mix debug and release

    Did you notice this?


Log in to reply