Building database driver, IT difficulties
-
@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 , 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 said in Building database driver, IT difficulties:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7I 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
-
@SPlatten
If you meanI 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 runningnmake
, 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. -
-
@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 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
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 copylibmysql.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