Selecting data from mysql using qt?
-
Well, it should make no problem to have SQL query before exec(), at least I don't have any problem with that.
Let's get back to square one:
You said if you uncomment the
@bool ok = db.open();@
then your program hangs. Can we see the value of 'ok'?
@qDebug() << ok;@
My guess is probably you have problems granting the rights in mysql when you've created the table... have you made
@GRANT ALL ON testTwo.* to 'root'at'localhost' IDENTIFIED BY 'somepassword';@
(Ouch please replace the 'at' with the 'at' sign, the forum motor uses it for code tags, I don't know how to write it... I hope it's not confusing.
I'm not sure if you can do it with empty password, I guess yes, but I never do that.) -
i now put password for root at localhost.
when i place qDebug() << ok then it displays this
@
false
QSqlQuery::exec: database not open
@false might be the value of ok.
-
Are you able to connect to your DB from shell?
-
i dont know how to connect to my DB from shell. I install xampp which is easy for me to manage my databases.
how can i connect from shell? -
@mysql -h host -D dbname -u user@
I guess your can omit host parameter if you are connecting to localhost. You might need to specify "-p password" switch also (depends on mysql configuration).
-
i think i did not install any mysql client. bcause it displays this output
@
root@zafar-laptop:/# mysql -h localhost -D testTwo -u root -p xxxxxx
The program 'mysql' can be found in the following packages:- mysql-client-core-5.1
- mysql-client-5.0
- mysql-cluster-client-5.1
Try: apt-get install <selected package>
@
-
Run
@dpkg --list | grep mysql@
and post the output for this command. -
here it is
@
root@zafar-laptop:/# dpkg --list | grep mysql
ii libmysqlclient-dev 5.1.41-3ubuntu12.6 MySQL database development files
ii libmysqlclient16 5.1.41-3ubuntu12.6 MySQL database client library
ii mysql-common 5.1.41-3ubuntu12.6 MySQL database common files (e.g. /etc/mysql@
-
How did you create your database? I don't see any mysql server either.
-
well i download xampp and install it. i created database using phpmyadmin.
-
i install xampp in this folder /opt/lampp
and my database is in /opt/lampp/var/mysql
-
Ok, I see. What is the location of your XAMPP installation? try to find the mysql binary there. And use the whole path (since I assume it is not in PATH) when connecting, i.e.
@/path/to/xampp/bin/mysql -D dbname -u username@
UPD: Didn't notice the location of xampp. then try (I guess it would be like this) @/opt/lampp/bin/mysql@
-
now here it what it says
@
root@zafar-laptop:/# /opt/lampp/bin/mysql -D testTwo -h localhost -u root -p 123456
Enter password:
ERROR 1049 (42000): Unknown database '123456'
@
i am providing the right pw -
Try not passing -p switch. I guess you will be prompted to type in your password.
or
@/opt/lampp/bin/mysql -u root testTwo@ -
now it output is Access Denied
@
root@zafar-laptop:/# /opt/lampp/bin/mysql -u root testTwo
ERROR 1045 (28000): Access denied for user 'root'at'localhost' (using password: NO)
@ -
I'm sorry i just confused you with my last post.
@/opt/lampp/bin/mysql -u root -p 123456 testTwo@
I thought that mysql would prompt you but it didn't.
-
Do it this way, then it will prompt for a password:
@/opt/lampp/bin/mysql -D testTwo -h localhost -u root -p
@ -
i got a big ouput here but i have not seen any errors in this. when i try to post whole output this forum didnt allow me to post more than 6000 characters
-
Cut it into pieces or use something like pastebin.
-
ok here it is
@
root@zafar-laptop:/# /opt/lampp/bin/mysql -u root -p 123456 testTwo
/opt/lampp/bin/mysql Ver 14.14 Distrib 5.1.41, for pc-linux-gnu (i686) using EditLine wrapper
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Usage: /opt/lampp/bin/mysql [OPTIONS] [database]
-?, --help Display this help and exit.
-I, --help Synonym for -?
--auto-rehash Enable automatic rehashing. One doesn't need to use
'rehash' to get table and field completion, but startup
and reconnecting may take a longer time. Disable with
--disable-auto-rehash.
-A, --no-auto-rehash
No automatic rehashing. One has to use 'rehash' to get
table and field completion. This gives a quicker start of
mysql and disables rehashing on reconnect. WARNING:
options deprecated; use --disable-auto-rehash instead.
-B, --batch Don't use history file. Disable interactive behavior.
(Enables --silent)
--character-sets-dir=name
Directory where character sets are.
--column-type-info Display column type information.
-c, --comments Preserve comments. Send comments to the server. The
default is --skip-comments (discard comments), enable
with --comments
-C, --compress Use compression in server/client protocol.
-#, --debug[=#] This is a non-debug version. Catch this and exit
--debug-check Check memory and open file usage at exit.
-T, --debug-info Print some debug info at exit.
-D, --database=name Database to use.
--default-character-set=name
Set the default character set.
--delimiter=name Delimiter to be used.
-e, --execute=name Execute command and quit. (Disables --force and history
file)
-E, --vertical Print the output of a query (rows) vertically.
-f, --force Continue even if we get an sql error.
-G, --named-commands
Enable named commands. Named commands mean this program's
internal commands; see mysql> help . When enabled, the
named commands can be used from any line of the query,
otherwise only from the first line, before an enter.
Disable with --disable-named-commands. This option is
disabled by default.
-g, --no-named-commands
Named commands are disabled. Use * form only, or use
named commands only in the beginning of a line ending
with a semicolon (;) Since version 10.9 the client now
starts with this option ENABLED by default! Disable with
'-G'. Long format commands still work from the first
line. WARNING: option deprecated; use
--disable-named-commands instead.
-i, --ignore-spaces Ignore space after function names.@
34/150