Set-up MariaDB library file location programmatically?
-
@jsulm , thank you.
So already I'm struggling with the answer on: https://stackoverflow.com/questions/6483523/qt-how-to-getcompile-mysql-driver
I cannot find the driver sources, my Qt path looks like this:
/Users/simonplatten/qt/5.14.2/Src
There is no plugins folder in there, the only plugins folder is:
/Users/simonplatten/qt/5.14.2/clang_64/plugins
That doesn't contain a mysql folder. I just did:
sudo find / -name sqldrivers/mysql
Nothing was found on my system.
I've tried to follow the instructions on https://doc.qt.io/qt-5/sql-driver.html#qmysql
I fall at the first hurdle, I don't have the environment variable QTDIR set and I think my installation of MariaDB is complicated by the fact it was installed using Homebrew. -
@SPlatten said in Set-up MariaDB library file location programmatically?:
I cannot find the driver sources
Did you install Qt sources?
-
@SPlatten said in Set-up MariaDB library file location programmatically?:
how do I do that?
If you used online installer you can use Maintenance Tool...
-
-
@jsulm , I'm confused now, the link posted is to the Open source page. What if I don't intend my application to be open source, once its completed I intend to purchase a license before distribution. Can I build a mySQL driver for Qt without open source?
-
@SPlatten said in Set-up MariaDB library file location programmatically?:
once its completed I intend to purchase a license before distribution
I'm not sure QtCompany will agree with that.
You should contact them.There are many ways to get the source code. For example here: https://download.qt.io/archive/qt/5.15/5.15.0/single/
Or using Git as described here: https://wiki.qt.io/Get_the_Source -
Hi, it might be easier if you use Qt's ODBC plugin (libqsqlodbc.dylib) together with the MariaDB Connector/ODBC
-
@hskoglund , thank you, I'll look into it. It seems its available for just about every operating system except MAC.
-
@SPlatten I'm not a lawyer and not working for QtCompany (that's why I suggested to ask the company).
You say: you are now developing an app and you want to release it later as closed source. And you want to buy Qt license when you want to release the app. My point was: QtCompany could say that you actually need the commercial license from the beginning as you're developing a closed source application which is going to be distributed. I may be wrong here, but it is worth checking.If you're not going to distribute your app then there is no issue.
-
@jsulm , thank you, I'll send Qt an email. Contacting Qt to ask such a question is easier said than done...How do I contact the appropriate person or department in Qt to ask?
https://www.qt.io/contact-qt-services-team
Query sent to Qt.
-
@SPlatten said in Set-up MariaDB library file location programmatically?:
That doesn't contain a mysql folder. I just did:
sudo find / -name sqldrivers/mysql
Nothing was found on my system.
I realize this is probably not your issue here, but I think you ought be aware, at least for future searches, that
-name abc/def
--- with that/
--- will always return false, so you'll never find a match.On MacOS (I'm Ubuntu) I think you'll find you would have to use
-path
instead, plus you want a substring match, so you would need e.g.:sudo find / -path '*sqldrivers/mysql' -print
P.S.
Don't forget the-print
which you didn't show you used, elsefind
is remarkably silent ;-) -
@jsulm said in Set-up MariaDB library file location programmatically?:
My point was: QtCompany could say that you actually need the commercial license from the beginning as you're developing a closed source application which is going to be distributed. I may be wrong here, but it is worth checking.
You do, or at least the QtC want you to, I had the issue when I wanted to open source a project that was previously made under QtLicence, slightly different but that exact topic came up.
It's due to the yearly licensing
scamscheme, would be no issue at all if it was a one purchase last for ever kind of deal -
I've been trying to follow: https://doc.qt.io/qt-5/sql-driver.html
Lots of issues, for starters a terminal at:/Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql
Executing qmake: ~/Qt/5.14.2/clang_64/bin/qmake -version
Does not return the same I only get:
QMake version 3.1 Using Qt version 5.14.2 in /Users/simonplatten/Qt/5.14.2/clang_64/lib
I could do with some help on how to turn the source into a driver.
I got a little further:
export QTDIR=/Users/simonplatten/Qt/5.14.2 export QTDIRBIN=$QTDIR/clang_64/bin cd $QTDIR/Src/qtbase/src/plugins/sqldrivers $QTDIRBIN/qmake -- MYSQL_PREFIX=/usr/local Running configuration tests... Checking for DB2 (IBM)... no Checking for InterBase... no Checking for MySQL... no Checking for OCI (Oracle)... no Checking for ODBC... no Checking for PostgreSQL... no Checking for SQLite (version 2)... no Checking for TDS (Sybase)... no Done running configuration tests. Configure summary: Qt Sql Drivers: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. no OCI (Oracle) ........................... no ODBC ................................... no PostgreSQL ............................. no SQLite2 ................................ no SQLite ................................. yes Using system provided SQLite ......... no TDS (Sybase) ........................... no Qt is now configured for building. Just run 'make'. Once everything is built, you must run 'make install'. Qt will be installed into '/Users/simonplatten/Qt/5.14.2/clang_64'. Prior to reconfiguration, make sure you remove any leftovers from the previous build.
I then ran "make", waited for it to complete. Some errors at the end:
Project ERROR: Library 'freetype' is not defined. make[1]: *** [sub-minimal-make_first] Error 3 make: *** [sub-platforms-make_first] Error 2
Then run "make install".
It would appear this has not built the driver as I still see in the Application Output:
Warning:QSqlDatabase: QMYSQL driver not loaded Warning:QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7 Info: L00000001:onFailure: db, failure: Driver not loaded Driver not loaded
Why does it appear that its all set-up to build sqlite and NOT mysql ?