Problem with QMYSQLDriver
-
Hi
Ahhh. never tried that :)it goes
#include "qtdir/src/sql/drivers/psql/qsql_psql.cpp"
QPSQLDriver *drv = new QPSQLDriver(con);So I assumed you tried with
#include "qtdir\qtbase\src\plugins\sqldrivers\mysql\qsql_mysql.cpp"
QMYSQLDriverand got errors ?
-
Yes indeed, I followed that example but for QMYSQL. I stopped right after instantiating the drv pointer because it was not recognizing the QMYSQLDriver.
-
@DoubleC122
and you changed the path to points to the mysql. cpp file ?
(the class is defined there) -
Yes, I changed everything there to go as it should. But apparently it didnt. I included just like this: #include "/home/catalin/Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/mysql/qsql_mysql.cpp". And Qt recognizes it. I also checked if there was actually that .cpp file there just to be sure, even if it is redundant to do so.
-
@DoubleC122
and this .cpp should include the .h file and the object should be known. hmm.
Its not inside namespace or anything that would prevent it from knowing type ? -
Not really, I tried using that even in a simple non Qt project, to see if at least that would do, but it didn't. For instance, in a simple blank project, I include whatever I need, plus the mysql connector header files and the path to the .cpp. Then, in main, I have just these lines:
sql::Driver *driver; sql::Connection *con; driver = get_driver_instance(); con = driver->connect("tcp://127.0.0.1:3306", "root", "root"); QMYSQLDriver *drv = new QMYSQLDriver(con);
And it says that #include <QtSql/private/qsqldriver_p.h> and #include <QtSql/private/qsqlresult_p.h> 'no such file or directory'. These are included in the qsql_mysql.cpp file. I certainly have those headers, since I looked a thousand times for them. If I try to include them 'manually', pretty much as I did for the qsql_mysql.cpp, it works, but I don't feel like it's a good idea also because then it moves on the other headers inside those I included and says the same error. Maybe the headers in qsql_mysql.cpp point somewhere else than where I looked for, I really have no idea.
-
Hi
I wonder if you need something like (in .pro file)
QT += gui-private
as we do for other private headers.
(looking for right name) -
@mrjj said in Problem with QMYSQLDriver:
gui-private
Unfortunately it doesnt change anything. Actually, I saw something else. If I just include the .cpp file without writing anything else, it shows me the header errors. Before, it showed me that the QMYSQLDriver was not declared in this scope, now if I just include the .cpp file, it shows me this error, which it didn't before.
-
Hi,
That would be
sql-private
. But from a quick look the plugin headers are not exported. -
So its not really possible to use a stand alone driver as the helps shows ?
or it does only apply to the QPSQLDriver ? -
Frankly now that I spent so much time on this error, I think I could use the normal QSqlDatabase class without using the connector from mysql. From what I saw it's similar to the QMYSQLDriver in the sense that I need to specify what database I want to use just like what I wanted to do before, but instead I don't use any other non qt driver in between, and of course mysql is in the list of supported connection databases so it's really good.