Selecting data from mysql using qt?
-
wrote on 12 Oct 2010, 09:22 last edited by
@
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@
-
wrote on 12 Oct 2010, 09:26 last edited by
Hm, apparently mysql is rather strict in terms of specifying parameters. Try to follow ¤ Dii ¤'s instructions.
-
wrote on 12 Oct 2010, 09:30 last edited by
whats Dii and where are these instructions?
-
wrote on 12 Oct 2010, 09:30 last edited by
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] -
wrote on 12 Oct 2010, 09:31 last edited by
lol, don't be write only :)
/opt/lampp/bin/mysql -D testTwo -h localhost -u root -p
-
wrote on 12 Oct 2010, 09:32 last edited by
BTW if you do this, AND it's working, you end up in mysql command line interface, you can get out with 'exit'
-
wrote on 12 Oct 2010, 09:32 last edited by
sorry i couldnt notice Dii user
-
wrote on 12 Oct 2010, 09:33 last edited by
Wow, mysql is full of surprises. Never got those with psql. ¤ Dii ¤, does it have \q command?
-
wrote on 12 Oct 2010, 09:34 last edited by
yes i get into mysql command line
-
wrote on 12 Oct 2010, 09:35 last edited by
whats the reason that my database is not opening in qt?
-
wrote on 12 Oct 2010, 09:38 last edited by
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.
-
wrote on 12 Oct 2010, 09:41 last edited by
I hope the next post will be like "Hooray, I got it working!!!" :)
-
wrote on 12 Oct 2010, 09:42 last edited by
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
@ -
wrote on 12 Oct 2010, 09:46 last edited by
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... -
wrote on 12 Oct 2010, 09:46 last edited by
I think you need to check apostrophes in that command.
-
wrote on 12 Oct 2010, 09:46 last edited by
ok, you have wrong apostrof type there. I mean this >> '
-
wrote on 12 Oct 2010, 09:48 last edited by
i tried without apostrophes as well but same error
-
wrote on 12 Oct 2010, 09:49 last edited by
nope, you had ` before the root and not '
that was the error -
wrote on 12 Oct 2010, 09:51 last edited by
ok, wait a second, I checked it in the meantime and it won't work without password, stay tuned, I post the right command
-
wrote on 12 Oct 2010, 09:51 last edited by
you mean like this
grant all on testTwo.* toroot
@localhost
;
if yes it also displaying same error
55/150