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. PostgreSql Query wont show tables form DB
Forum Update on Monday, May 27th 2025

PostgreSql Query wont show tables form DB

Scheduled Pinned Locked Moved Solved General and Desktop
15 Posts 3 Posters 2.0k 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.
  • C Offline
    C Offline
    Csonytii
    wrote on last edited by Csonytii
    #1

    Hello Everybody,
    I Have the following part of code where i set my connection:

     QSqlDatabase DataBaseSample=QSqlDatabase::addDatabase("QPSQL","Sample");
     void setSample(){
             DataBaseSample.setDatabaseName("MyDbName");
             DataBaseSample.setUserName("myuser");
             DataBaseSample.setPassword("mypw");
             DataBaseSample.setHostName("mysite.xy");
             bool ok=DataBaseSample.open();
    }
    ...
    

    And after that i have the following code which is list of all the Tables from the given DB:

        QStringList Tableslist(int DBID){
            QSqlDatabase Current=db->ReturnDataBase(DBID);
            return Current.tables();
        }
    ...
        QSqlTableModel *model=MC.TableReturn(Choose);
        model->setTable(Tabletoshow);
        model->select();
        ui->tableView->setModel(model);
    ...
    

    i wanted to check with wireshark where i got wrong but Postgre is encrypt better than mysql.
    So code is working with MySql but not with PostgreSql what should i do?

    Thank you for your answer

    VRoninV 1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      First thing would be to check the value returned by the open call and then check for errors on the other parts of your code.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      C 1 Reply Last reply
      1
      • SGaistS SGaist

        Hi,

        First thing would be to check the value returned by the open call and then check for errors on the other parts of your code.

        C Offline
        C Offline
        Csonytii
        wrote on last edited by Csonytii
        #3

        @SGaist

        According to qDebug that i didnt include in my code(i copied wrong):

         void setSample(){
                 DataBaseSample.setDatabaseName("MyDbName");
                 DataBaseSample.setUserName("myuser");
                 DataBaseSample.setPassword("mypw");
                 DataBaseSample.setHostName("mysite.xy");
                 bool ok=DataBaseSample.open();
                 qDebug()<<"Connection established:"<<ok;
                 qDebug()<<DataBaseSample.lastError().text();
        }
        

        which is returns with true and ""

        And i dont know any other problems because its work with mysql

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #4

          You should also check the QSqlTableModel::lastError just in case.

          And maybe a silly question but are you sure that your PostgreSQL database contains the same content as your MySQL database ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          C 1 Reply Last reply
          2
          • SGaistS SGaist

            You should also check the QSqlTableModel::lastError just in case.

            And maybe a silly question but are you sure that your PostgreSQL database contains the same content as your MySQL database ?

            C Offline
            C Offline
            Csonytii
            wrote on last edited by Csonytii
            #5

            @SGaist

            Sorry for late answer. LastError dont report any problem either. In the Tables completely the same as the MySQL table scheme... If this application wasn't be used widely, i would not care about PostgreSQL .
            It is started to frustrate me that i spend days to configure sql databases in different configuration and they're mess with me indirectly...

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #6

              Then maybe something specific to PostgreSQL, are you using the default schema ?

              In doubt, this small blog article gives a nice overview of the PostgreSQL schema.

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • C Csonytii

                Hello Everybody,
                I Have the following part of code where i set my connection:

                 QSqlDatabase DataBaseSample=QSqlDatabase::addDatabase("QPSQL","Sample");
                 void setSample(){
                         DataBaseSample.setDatabaseName("MyDbName");
                         DataBaseSample.setUserName("myuser");
                         DataBaseSample.setPassword("mypw");
                         DataBaseSample.setHostName("mysite.xy");
                         bool ok=DataBaseSample.open();
                }
                ...
                

                And after that i have the following code which is list of all the Tables from the given DB:

                    QStringList Tableslist(int DBID){
                        QSqlDatabase Current=db->ReturnDataBase(DBID);
                        return Current.tables();
                    }
                ...
                    QSqlTableModel *model=MC.TableReturn(Choose);
                    model->setTable(Tabletoshow);
                    model->select();
                    ui->tableView->setModel(model);
                ...
                

                i wanted to check with wireshark where i got wrong but Postgre is encrypt better than mysql.
                So code is working with MySql but not with PostgreSql what should i do?

                Thank you for your answer

                VRoninV Offline
                VRoninV Offline
                VRonin
                wrote on last edited by
                #7

                Can you show us the body of db->ReturnDataBase(DBID); and MC.TableReturn(Choose);?

                "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                ~Napoleon Bonaparte

                On a crusade to banish setIndexWidget() from the holy land of Qt

                C 1 Reply Last reply
                0
                • VRoninV VRonin

                  Can you show us the body of db->ReturnDataBase(DBID); and MC.TableReturn(Choose);?

                  C Offline
                  C Offline
                  Csonytii
                  wrote on last edited by
                  #8

                  @SGaist
                  i have a schame named public. with DataGrip show both way,

                  select * 
                  from  public.Table
                  --or simply Table
                  

                  @VRonin

                  QSqlTableModel *TableReturn(int DBID){
                  
                          QSqlTableModel *model = new QSqlTableModel(nullptr,db->ReturnDataBase(DBID));
                          qDebug()<<model->tableName();
                          return model;
                      }
                  
                    QSqlDatabase ReturnDataBase(int DBID){
                           QSqlDatabase db;
                           if(DBID==0){
                                 setmydb1();
                              db=QSqlDatabase::database("mydb0");
                              return db;
                           }else if (DBID==1) {
                                  setmydb1();
                               db=QSqlDatabase::database("mydb1");
                               return db;
                           }
                          ...
                              return db;
                  
                       }
                  

                  i dont know how efficient is this.

                  1 Reply Last reply
                  0
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on last edited by
                    #9

                    What does setmydb1 do ? It's called for both databases.

                    Interested in AI ? www.idiap.ch
                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                    C 2 Replies Last reply
                    0
                    • SGaistS SGaist

                      What does setmydb1 do ? It's called for both databases.

                      C Offline
                      C Offline
                      Csonytii
                      wrote on last edited by Csonytii
                      #10

                      @SGaist

                      setmydb1 is like SetSample with different cities, (i don't want to use real data if that is not a problem). And i know it is harder to help when i do stuff like this, so sorry about that
                      EDIT1:I finally figured out... Sample is not equal sample... I named the DB as Sample and i wanted to return with sample
                      EDIT2: now its list the tables, but not the content of it...
                      EDIT3: for example model->setTable("\"City\""); does the trick

                      Thank you for your answers!

                      1 Reply Last reply
                      0
                      • SGaistS SGaist

                        What does setmydb1 do ? It's called for both databases.

                        C Offline
                        C Offline
                        Csonytii
                        wrote on last edited by Csonytii
                        #11
                        This post is deleted!
                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #12

                          Are you sure you setup the database properly ?

                          I find it very strange that you have to add double quotes around the table name to be able to access its content.

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          C 1 Reply Last reply
                          0
                          • SGaistS SGaist

                            Are you sure you setup the database properly ?

                            I find it very strange that you have to add double quotes around the table name to be able to access its content.

                            C Offline
                            C Offline
                            Csonytii
                            wrote on last edited by
                            #13

                            @SGaist
                            The Double quotes used by pgadmin 4 and DataGrip too. So probably the same as the `tablename` in the Mysql syntax but its obligatory in PostgreSQL

                            1 Reply Last reply
                            0
                            • SGaistS Offline
                              SGaistS Offline
                              SGaist
                              Lifetime Qt Champion
                              wrote on last edited by
                              #14

                              After verification, here you can find why double quotes should be used.

                              Interested in AI ? www.idiap.ch
                              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                              C 1 Reply Last reply
                              0
                              • SGaistS SGaist

                                After verification, here you can find why double quotes should be used.

                                C Offline
                                C Offline
                                Csonytii
                                wrote on last edited by
                                #15

                                @SGaist

                                Thanks For you Help

                                1 Reply Last reply
                                0

                                • Login

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