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

      @
      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
                                          • D
                                            doforumda last edited by

                                            you mean like this
                                            grant all on testTwo.* to root@localhost ;
                                            if yes it also displaying same error

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