Selecting data from mysql using qt?
-
Here is his post.
[quote author="¤ Dii ¤" date="1286874970"]Do it this way, then it will prompt for a password:
@/opt/lampp/bin/mysql -D testTwo -h localhost -u root -p
@
[/quote] -
lol, don't be write only :)
/opt/lampp/bin/mysql -D testTwo -h localhost -u root -p
-
BTW if you do this, AND it's working, you end up in mysql command line interface, you can get out with 'exit'
-
sorry i couldnt notice Dii user
-
Wow, mysql is full of surprises. Never got those with psql. ¤ Dii ¤, does it have \q command?
-
yes i get into mysql command line
-
whats the reason that my database is not opening in qt?
-
lyuts: yes \q is working too
doforumda: ok, so get into the mysql comand line with the command above
/opt/lampp/bin/mysql -D testTwo -h localhost -u root -p
and then do this:
grant all on testTwo.* to 'root'@'localhost' ;
Then we have a working mysql, and the rights are granted, we can get back to your Qt program.
-
I hope the next post will be like "Hooray, I got it working!!!" :)
-
there is an error in sql syntax
@
mysql> grant all on testTwo.* to ‘root’@’localhost’;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '��root’@’localhost’' at line 1
@ -
Ok, back to your Qt program:
@#include <QApplication>
#include <QtSql>int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setDatabaseName("testTwo"); db.setUserName("root"); db.setPassword(""); db.setHostName("localhost"); bool ok = db.open(); qDebug() << ok; QSqlQuery query; query.exec("SELECT firstname,lastname FROM testTable"); while(query.next()) { QString firstName = query.value(0).toString(); QString secondName = query.value(1).toString(); qDebug() << "First Name: " << firstName << "Last Name:" << secondName; qDebug() << db.lastError(); } return 0;
}@
Notice, we don't set a password here.
The end is 'return 0' instead of 'a.exec()', and it won't hang. The exec() starts the main event loop, and you don't use it here... -
I think you need to check apostrophes in that command.
-
ok, you have wrong apostrof type there. I mean this >> '
-
i tried without apostrophes as well but same error
-
nope, you had ` before the root and not '
that was the error -
ok, wait a second, I checked it in the meantime and it won't work without password, stay tuned, I post the right command
-
you mean like this
grant all on testTwo.* toroot
@localhost
;
if yes it also displaying same error -
so, here we go:
grant all on testTwo.* to 'root'@'localhost' identified by 'password';
Make the right apostrophes! :) You have to set the password in your Qt app too.
-
ok, wait I see
-
the Devnet's forum motor changes the apostrophes somehow... use the straight apostrophes everywhere
I mean this @'@
58/150