Selecting data from mysql using qt?
-
wrote on 12 Oct 2010, 09:21 last edited by
@
--local-infile Enable/disable LOAD DATA LOCAL INFILE.
-b, --no-beep Turn off beep on error.
-h, --host=name Connect to host.
-H, --html Produce HTML output.
-X, --xml Produce XML output
--line-numbers Write line numbers for errors.
-L, --skip-line-numbers
Don't write line number for errors. WARNING: -L is
deprecated, use long version of this option instead.
-n, --unbuffered Flush buffer after each query.
--column-names Write column names in results.
-N, --skip-column-names
Don't write column names in results. WARNING: -N is
deprecated, use long version of this options instead.
-O, --set-variable=name
Change the value of a variable. Please note that this
option is deprecated; you can set variables directly with
--variable-name=value.
--sigint-ignore Ignore SIGINT (CTRL-C)
-o, --one-database Only update the default database. This is useful for
skipping updates to other database in the update log.
--pager[=name] Pager to use to display results. If you don't supply an
option the default pager is taken from your ENV variable
PAGER. Valid pagers are less, more, cat [> filename],
etc. See interactive help (\h) also. This option does not
work in batch mode. Disable with --disable-pager. This
option is disabled by default.
--no-pager Disable pager and print to stdout. See interactive help
(\h) also. WARNING: option deprecated; use
--disable-pager instead.
-p, --password[=name]
Password to use when connecting to server. If password is
not given it's asked from the tty.
-P, --port=# Port number to use for connection or 0 for default to, in
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/services, built-in default (3306).
--prompt=name Set the mysql prompt to this value.
--protocol=name The protocol of connection (tcp,socket,pipe,memory).
-q, --quick Don't cache result, print it row by row. This may slow
down the server if the output is suspended. Doesn't use
history file.
-r, --raw Write fields without conversion. Used with --batch.
--reconnect Reconnect if the connection is lost. Disable with
--disable-reconnect. This option is enabled by default.
-s, --silent Be more silent. Print results with a tab as separator,
each row on new line.
-S, --socket=name Socket file to use for connection.
--ssl Enable SSL for connection (automatically enabled with
other flags). Disable with --skip-ssl.
--ssl-ca=name CA file in PEM format (check OpenSSL docs, implies
--ssl).
--ssl-capath=name CA directory (check OpenSSL docs, implies --ssl).
--ssl-cert=name X509 cert in PEM format (implies --ssl).
--ssl-cipher=name SSL cipher to use (implies --ssl).
--ssl-key=name X509 key in PEM format (implies --ssl).
--ssl-verify-server-cert
Verify server's "Common Name" in its cert against
hostname used when connecting. This option is disabled by
default.
-t, --table Output in table format.
--tee=name Append everything into outfile. See interactive help (\h)
also. Does not work in batch mode. Disable with
--disable-tee. This option is disabled by default.
--no-tee Disable outfile. See interactive help (\h) also. WARNING:
option deprecated; use --disable-tee instead
-u, --user=name User for login if not current user.
-U, --safe-updates Only allow UPDATE and DELETE that uses keys.
-U, --i-am-a-dummy Synonym for option --safe-updates, -U.
-v, --verbose Write more. (-v -v -v gives the table output format).
-V, --version Output version information and exit.
-w, --wait Wait and retry if connection is down.
--connect_timeout=# Number of seconds before connection timeout.
--max_allowed_packet=#
Max packet length to send to, or receive from server
--net_buffer_length=#
Buffer for TCP/IP and socket communication
--select_limit=# Automatic limit for SELECT when using --safe-updates
--max_join_size=# Automatic limit for rows in a join when using
--safe-updates
--secure-auth Refuse client connecting to server if it uses old
(pre-4.1.1) protocol
--server-arg=name Send embedded server this as a parameter.
--show-warnings Show warnings after every statement.Default options are read from the following files in the given order:
/etc/xampp/my.cnf /opt/lampp/etc/my.cnf ~/.my.cnf
The following groups are read: mysql client
The following options may be given as the first argument:
--print-defaults Print the program argument list and exit
--no-defaults Don't read default options from any options file
--defaults-file=# Only read default options from the given file #
--defaults-extra-file=# Read this file after the global files are read@
-
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
54/150