Selecting data from mysql using qt?
-
@
Variables (--variable-name=value)
and boolean options {FALSE|TRUE} Value (after reading options)
auto-rehash FALSE
character-sets-dir (No default value)
column-type-info FALSE
comments FALSE
compress FALSE
debug-check FALSE
debug-info FALSE
database (No default value)
default-character-set latin1
delimiter ;
vertical FALSE
force FALSE
named-commands FALSE
ignore-spaces FALSE
local-infile FALSE
no-beep FALSE
host (No default value)
html FALSE
xml FALSE
line-numbers TRUE
unbuffered FALSE
column-names TRUE
sigint-ignore FALSE
port 3306
prompt mysql>
quick FALSE
raw FALSE
reconnect TRUE
socket /opt/lampp/var/mysql/mysql.sock
ssl FALSE
ssl-ca (No default value)
ssl-capath (No default value)
ssl-cert (No default value)
ssl-cipher (No default value)
ssl-key (No default value)
ssl-verify-server-cert FALSE
table FALSE
user root
safe-updates FALSE
i-am-a-dummy FALSE
connect_timeout 0
max_allowed_packet 16777216
net_buffer_length 16384
select_limit 1000
max_join_size 1000000
secure-auth FALSE
show-warnings FALSE@
-
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...