Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Selecting data from mysql using qt?

    General and Desktop
    7
    150
    97381
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      lyuts last edited by

      Cut it into pieces or use something like pastebin.

      I'm a rebel in the S.D.G.

      1 Reply Last reply Reply Quote 0
      • D
        doforumda last edited by

        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.

        @

        1 Reply Last reply Reply Quote 0
        • D
          doforumda 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

          @

          1 Reply Last reply Reply Quote 0
          • D
            doforumda 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

            @

            1 Reply Last reply Reply Quote 0
            • L
              lyuts last edited by

              Hm, apparently mysql is rather strict in terms of specifying parameters. Try to follow ¤ Dii ¤'s instructions.

              I'm a rebel in the S.D.G.

              1 Reply Last reply Reply Quote 0
              • D
                doforumda last edited by

                whats Dii and where are these instructions?

                1 Reply Last reply Reply Quote 0
                • L
                  lyuts 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]

                  I'm a rebel in the S.D.G.

                  1 Reply Last reply Reply Quote 0
                  • D
                    Dii last edited by

                    lol, don't be write only :)

                    /opt/lampp/bin/mysql -D testTwo -h localhost -u root -p

                    1 Reply Last reply Reply Quote 0
                    • D
                      Dii 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'

                      1 Reply Last reply Reply Quote 0
                      • D
                        doforumda last edited by

                        sorry i couldnt notice Dii user

                        1 Reply Last reply Reply Quote 0
                        • L
                          lyuts last edited by

                          Wow, mysql is full of surprises. Never got those with psql. ¤ Dii ¤, does it have \q command?

                          I'm a rebel in the S.D.G.

                          1 Reply Last reply Reply Quote 0
                          • D
                            doforumda last edited by

                            yes i get into mysql command line

                            1 Reply Last reply Reply Quote 0
                            • D
                              doforumda last edited by

                              whats the reason that my database is not opening in qt?

                              1 Reply Last reply Reply Quote 0
                              • D
                                Dii 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.

                                1 Reply Last reply Reply Quote 0
                                • L
                                  lyuts last edited by

                                  I hope the next post will be like "Hooray, I got it working!!!" :)

                                  I'm a rebel in the S.D.G.

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    doforumda 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
                                    @

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      Dii 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&#40;"SELECT firstname,lastname FROM testTable"&#41;;
                                      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...

                                      1 Reply Last reply Reply Quote 0
                                      • L
                                        lyuts last edited by

                                        I think you need to check apostrophes in that command.

                                        I'm a rebel in the S.D.G.

                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          Dii last edited by

                                          ok, you have wrong apostrof type there. I mean this >> '

                                          1 Reply Last reply Reply Quote 0
                                          • D
                                            doforumda last edited by

                                            i tried without apostrophes as well but same error

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post