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.
    • 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
                                        • D
                                          Dii last edited by

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

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

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