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.3k 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 11 Oct 2010, 15:55 last edited by
    #1

    i am trying to select data from mysql db using qt. here is my code
    @
    #include <QApplication>
    #include <QSqlDatabase>
    #include <QSqlError>
    #include <QSqlQuery>
    #include <QDebug>
    //#include <QString>
    //#include "../connection.h"
    #include "db.h"

    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();
    
    QSqlQuery query;
    query.exec&#40;"SELECT * FROM testTable"&#41;;
    while(query.next(&#41;&#41; {
        QString firstName = query.value(0&#41;.toString();
        QString secondName = query.value(1).toString();
        qDebug() << firstName << secondName;
    }
    return a.exec(&#41;;
    

    }
    @

    this piece of code displays this error
    @
    invalid use of incomplete type ‘struct QVariant’ main.cpp 25
    forward declaration of ‘struct QVariant’ qobject.h 66
    invalid use of incomplete type ‘struct QVariant’ main.cpp 26
    forward declaration of ‘struct QVariant’ qobject.h 66
    @
    please help how can i solve this problem?

    1 Reply Last reply
    0
    • ? This user is from outside of this forum
      ? This user is from outside of this forum
      Guest
      wrote on 11 Oct 2010, 16:52 last edited by
      #2

      Line no. 22 and 23, can just be replaced with ...

      @
      QSqlQuery query("SELECT * FROM testTable");
      @

      But also, do check the documentation for QSqlQuery, where it is recomended NOT to use SELECT *

      1 Reply Last reply
      0
      • D Offline
        D Offline
        doforumda
        wrote on 11 Oct 2010, 17:02 last edited by
        #3

        now i changed it to this
        @
        query.exec("SELECT firstname,lastname FROM testTable");
        @
        still the same errors

        and i am following this link "Your text to link here...":http://doc.trolltech.com/4.7/sql-sqlstatements.html

        0 1 Reply Last reply 4 May 2016, 08:46
        0
        • T Offline
          T Offline
          tony
          wrote on 11 Oct 2010, 17:22 last edited by
          #4

          Maybe an "#include <QVariant>" is missing at the top?

          T.

          1 Reply Last reply
          0
          • M Offline
            M Offline
            MTK358
            wrote on 11 Oct 2010, 17:27 last edited by
            #5

            Why not just

            @#include <QtCore>
            #include <QtSql>@

            and not worry about every single class you use?

            1 Reply Last reply
            0
            • T Offline
              T Offline
              tony
              wrote on 11 Oct 2010, 17:29 last edited by
              #6

              That can be a solution only when you're testing something. So, in this case, I agree with you, let's avoid such worries.

              But if your project grows up, it's better to include what's needed, otherwise your compilation time can increase a lot.

              T.

              1 Reply Last reply
              0
              • D Offline
                D Offline
                doforumda
                wrote on 11 Oct 2010, 17:29 last edited by
                #7

                i add #include <QVariant>

                now it is saying
                @
                QSqlQuery::exec: database not open
                @

                1 Reply Last reply
                0
                • D Offline
                  D Offline
                  Dmytro
                  wrote on 11 Oct 2010, 17:32 last edited by
                  #8

                  Try to use QSqlQuery::lastError() for find problem

                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    doforumda
                    wrote on 11 Oct 2010, 17:32 last edited by
                    #9

                    what is the problem now in my code why it is not opening database?

                    1 Reply Last reply
                    0
                    • T Offline
                      T Offline
                      tony
                      wrote on 11 Oct 2010, 17:33 last edited by
                      #10

                      Did you leave

                      @
                      //bool ok = db.open();
                      @

                      commented?

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        doforumda
                        wrote on 11 Oct 2010, 17:36 last edited by
                        #11

                        well i changed my code to this and added lastError as well

                        @
                        #include <QApplication>
                        #include <QSqlDatabase>
                        #include <QSqlError>
                        #include <QSqlQuery>
                        #include <QDebug>
                        #include <QString>
                        #include <QVariant>
                        //#include <QtCore>
                        //#include <QtSql>
                        //#include "../connection.h"
                        #include "db.h"

                        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();
                        
                        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 a.exec&#40;&#41;;
                        

                        }
                        @

                        it still says QSqlQuery::exec: database not open

                        1 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          doforumda
                          wrote on 11 Oct 2010, 17:37 last edited by
                          #12

                          it is still as commented
                          [quote author="Antonio Di Monaco" date="1286818410"]Did you leave

                          @
                          //bool ok = db.open();
                          @

                          commented?[/quote]

                          1 Reply Last reply
                          0
                          • D Offline
                            D Offline
                            Dmytro
                            wrote on 11 Oct 2010, 17:39 last edited by
                            #13

                            Try uncomment line 23

                            1 Reply Last reply
                            0
                            • D Offline
                              D Offline
                              doforumda
                              wrote on 11 Oct 2010, 17:42 last edited by
                              #14

                              i uncomment line 23 and comment everything below line 23 then it just says
                              @
                              Starting /home/zafar/c++/dbExample-build-desktop/dbExample...
                              @

                              and stucks there

                              1 Reply Last reply
                              0
                              • D Offline
                                D Offline
                                Dmytro
                                wrote on 11 Oct 2010, 17:55 last edited by
                                #15

                                OH! You use SQL code before
                                a.exec()
                                !
                                Are you sure?

                                Create standart QT GUI application and wrote sql code in mainwindow module.

                                1 Reply Last reply
                                0
                                • D Offline
                                  D Offline
                                  doforumda
                                  wrote on 11 Oct 2010, 18:01 last edited by
                                  #16

                                  i am new to qt. how can i create Qt Gui App and do you mean i should write sql code in mainwindow.h file?

                                  1 Reply Last reply
                                  0
                                  • D Offline
                                    D Offline
                                    doforumda
                                    wrote on 11 Oct 2010, 18:05 last edited by
                                    #17

                                    right now i have three files. db.h, db,cpp and main.cpp

                                    1 Reply Last reply
                                    0
                                    • D Offline
                                      D Offline
                                      Dmytro
                                      wrote on 11 Oct 2010, 18:12 last edited by
                                      #18

                                      Run QT Creator.
                                      Use menu File/new file or project.
                                      Select QT Gui application.
                                      ...
                                      and select SQL checkbox
                                      ...
                                      and write sql code in MainWindow.cpp
                                      ...
                                      and see SQL Example please

                                      1 Reply Last reply
                                      0
                                      • D Offline
                                        D Offline
                                        doforumda
                                        wrote on 11 Oct 2010, 18:16 last edited by
                                        #19

                                        well i tried "File/new file or project and select qt gui app" but i ddint find any sql checkbox anywhere in creating new project

                                        1 Reply Last reply
                                        0
                                        • D Offline
                                          D Offline
                                          Dmytro
                                          wrote on 11 Oct 2010, 18:32 last edited by
                                          #20

                                          no coments...
                                          How can I send you screenshot?

                                          1 Reply Last reply
                                          0

                                          3/150

                                          11 Oct 2010, 17:02

                                          topic:navigator.unread, 147
                                          • Login

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