Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Selecting data from mysql using qt?

Selecting data from mysql using qt?

Scheduled Pinned Locked Moved General and Desktop
150 Posts 7 Posters 141.5k Views
  • 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.
  • D Offline
    D Offline
    doforumda
    wrote on 12 Oct 2010, 09:21 last edited by
    #45

    @
    --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
    0
    • D Offline
      D Offline
      doforumda
      wrote on 12 Oct 2010, 09:22 last edited by
      #46

      @
      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
      0
      • L Offline
        L Offline
        lyuts
        wrote on 12 Oct 2010, 09:26 last edited by
        #47

        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
        0
        • D Offline
          D Offline
          doforumda
          wrote on 12 Oct 2010, 09:30 last edited by
          #48

          whats Dii and where are these instructions?

          1 Reply Last reply
          0
          • L Offline
            L Offline
            lyuts
            wrote on 12 Oct 2010, 09:30 last edited by
            #49

            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
            0
            • D Offline
              D Offline
              Dii
              wrote on 12 Oct 2010, 09:31 last edited by
              #50

              lol, don't be write only :)

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

              1 Reply Last reply
              0
              • D Offline
                D Offline
                Dii
                wrote on 12 Oct 2010, 09:32 last edited by
                #51

                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
                0
                • D Offline
                  D Offline
                  doforumda
                  wrote on 12 Oct 2010, 09:32 last edited by
                  #52

                  sorry i couldnt notice Dii user

                  1 Reply Last reply
                  0
                  • L Offline
                    L Offline
                    lyuts
                    wrote on 12 Oct 2010, 09:33 last edited by
                    #53

                    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
                    0
                    • D Offline
                      D Offline
                      doforumda
                      wrote on 12 Oct 2010, 09:34 last edited by
                      #54

                      yes i get into mysql command line

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        doforumda
                        wrote on 12 Oct 2010, 09:35 last edited by
                        #55

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

                        1 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          Dii
                          wrote on 12 Oct 2010, 09:38 last edited by
                          #56

                          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
                          0
                          • L Offline
                            L Offline
                            lyuts
                            wrote on 12 Oct 2010, 09:41 last edited by
                            #57

                            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
                            0
                            • D Offline
                              D Offline
                              doforumda
                              wrote on 12 Oct 2010, 09:42 last edited by
                              #58

                              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
                              0
                              • D Offline
                                D Offline
                                Dii
                                wrote on 12 Oct 2010, 09:46 last edited by
                                #59

                                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
                                0
                                • L Offline
                                  L Offline
                                  lyuts
                                  wrote on 12 Oct 2010, 09:46 last edited by
                                  #60

                                  I think you need to check apostrophes in that command.

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

                                  1 Reply Last reply
                                  0
                                  • D Offline
                                    D Offline
                                    Dii
                                    wrote on 12 Oct 2010, 09:46 last edited by
                                    #61

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

                                    1 Reply Last reply
                                    0
                                    • D Offline
                                      D Offline
                                      doforumda
                                      wrote on 12 Oct 2010, 09:48 last edited by
                                      #62

                                      i tried without apostrophes as well but same error

                                      1 Reply Last reply
                                      0
                                      • D Offline
                                        D Offline
                                        Dii
                                        wrote on 12 Oct 2010, 09:49 last edited by
                                        #63

                                        nope, you had ` before the root and not '
                                        that was the error

                                        1 Reply Last reply
                                        0
                                        • D Offline
                                          D Offline
                                          Dii
                                          wrote on 12 Oct 2010, 09:51 last edited by
                                          #64

                                          ok, wait a second, I checked it in the meantime and it won't work without password, stay tuned, I post the right command

                                          1 Reply Last reply
                                          0

                                          54/150

                                          12 Oct 2010, 09:34

                                          • Login

                                          • Login or register to search.
                                          54 out of 150
                                          • First post
                                            54/150
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved