Selecting data from mysql using 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.
-
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... -
mysql query did its job its now successful but when i use qt code and try to make it run it displays same error
@
Starting /home/zafar/c++/dbExample-build-desktop/dbExample...
false
QSqlQuery::exec: database not open
/home/zafar/c++/dbExample-build-desktop/dbExample exited with code 0
@ -
[quote author="doforumda" date="1286877766"]wait i think the query is not sucessful because it displays this message 0 rows affected
@
mysql> grant all on testTwo.* to 'root'at'localhost' identified by 'password';
Query OK, 0 rows affected (0.01 sec)
@[/quote]Did you run that command with 'password' instead of '123456'?
-
this is the output after adding lastError.text()
@
Starting /home/zafar/c++/dbExample-build-desktop/dbExample...
" "
false
QSqlQuery::exec: database not open
/home/zafar/c++/dbExample-build-desktop/dbExample exited with code 0
@lyut: yes i use command with 'password' not '123456'
Dii sorry i didnt understand this db.setPassword("password");
where should i set this -
[quote author="doforumda" date="1286878193"]
lyut: yes i use command with 'password' not '123456'Dii sorry i didnt understand this db.setPassword("password");
where should i set this[/quote]- I assume you should have specified the actual password when running that query.
- @db.setPassword("password");@ should be added to your source code just where you set db options.