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 and Trying to connect using Qt
Forum Updated to NodeBB v4.3 + New Features

PostgreSQL and Trying to connect using Qt

Scheduled Pinned Locked Moved General and Desktop
46 Posts 8 Posters 42.5k Views 3 Watching
  • 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.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #37

    libpq-fe.h being in include/libpq

    You should use

    @“INCLUDEPATH+=c:/psql93_x86/include/libpq”@

    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
    • A Offline
      A Offline
      aftertaf
      wrote on last edited by
      #38

      same :(

      1 Reply Last reply
      0
      • C Offline
        C Offline
        clochydd
        wrote on last edited by
        #39

        Don't give up - we will find a solution, hopefully!

        • Is the qmake error message concerning the libpq-fe.h exactly as before?
        • Could you please post the message again?
        • Could you post the directory list of c:\psql93_x86\include?
        1 Reply Last reply
        0
        • A Offline
          A Offline
          aftertaf
          wrote on last edited by
          #40

          just tried making the odbc driver again...
          and get the Driver not Loaded message :)


          C:\QT\5.2.1\Src\qtbase\src\plugins\sqldrivers\psql>c:\Qt\5.2.1\mingw48_32\bin\qm
          ake.exe "INCLUDEPATH+=c:/psql93_x86/include/libpq" "LIBS+=c:/psql93_x86/lib/libp
          q.lib" psql.pro

          C:\QT\5.2.1\Src\qtbase\src\plugins\sqldrivers\psql>mingw32-make debug
          mingw32-make -f Makefile.Debug
          mingw32-make[1]: Entering directory 'C:/QT/5.2.1/Src/qtbase/src/plugins/sqldrive
          rs/psql'
          g++ -c -pipe -fno-keep-inline-dllexport -g -std=c++0x -fno-exceptions -frtti -Wa
          ll -Wextra -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEP
          TIONS -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -I"C:\Qt\5.2.1\mingw48_32\inclu
          de\QtSql\5.2.1" -I"C:\Qt\5.2.1\mingw48_32\include\QtSql\5.2.1\QtSql" -I"C:\Qt\5.
          2.1\mingw48_32\include" -I"C:\Qt\5.2.1\mingw48_32\include\QtSql" -I"C:\Qt\5.2.1
          mingw48_32\include\QtCore\5.2.1" -I"C:\Qt\5.2.1\mingw48_32\include\QtCore\5.2.1
          QtCore" -I"C:\Qt\5.2.1\mingw48_32\include\QtCore" -I".moc\debug" -I"........
          mkspecs\win32-g++" -o .obj\debug\qsql_psql.o ......\sql\drivers\psql\qsql_psql
          .cpp
          ......\sql\drivers\psql\qsql_psql.cpp:59:22: fatal error: libpq-fe.h: No such
          file or directory
          #include <libpq-fe.h>
          ^
          compilation terminated.
          Makefile.Debug:497: recipe for target '.obj/debug/qsql_psql.o' failed
          mingw32-make[1]: *** [.obj/debug/qsql_psql.o] Error 1
          mingw32-make[1]: Leaving directory 'C:/QT/5.2.1/Src/qtbase/src/plugins/sqldriver
          s/psql'
          makefile:48: recipe for target 'debug' failed
          mingw32-make: *** [debug] Error 2

          1 Reply Last reply
          0
          • A Offline
            A Offline
            aftertaf
            wrote on last edited by
            #41

            http://pastebin.com/4cpqVMiN
            folder contents

            1 Reply Last reply
            0
            • C Offline
              C Offline
              clochydd
              wrote on last edited by
              #42

              Thanks for the data! I can see our "fatal" libpq-fe.h in c:\psql93_x86\include. So as a first step I suppose to test with:
              C:\QT\5.2.1\Src\qtbase\src\plugins\sqldrivers\psql>c:\Qt\5.2.1\mingw48_32\bin\qmake.exe “INCLUDEPATH+=c:\psql93_x86\include” “LIBS+=c:\psql93_x86\lib\libpq.lib” psql.pro
              I know, the backslashes are a bit unusual for Qt but it worked with my installs so give it a try! Good luck!

              1 Reply Last reply
              0
              • A Offline
                A Offline
                aftertaf
                wrote on last edited by
                #43

                i've tried on many occasions with \ and /: same result.

                The problem is obviously over my level of unkludging, and I've figured out how to use ODBC instead.

                @
                #include <QtSql>
                #include <QString>
                #include <QSqlDatabase>

                void connect_db()
                {

                QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
                QStringList driversList = QSqlDatabase::drivers();
                qDebug() << "drivers list= " << driversList;
                bool bOpen(false);
                db.addDatabase("QODBC","odbcname");
                db.setHostName("localhost");
                db.setDatabaseName("dbname_in_postgres");
                db.setUserName("username");
                db.setPassword("password");
                bOpen =db.open();
                QString str=db.lastError().text();
                }@

                str remains empty :)
                and bOpen shows True for the first time in a month's trying.
                I dont need pure pg connection, using an ODBC is fine for me at this stage.
                Now for trying to make my DAO classes :)
                thanks to all for helping, sorry it didn't work out as intended, but for ODBC connections, my above code works.

                1 Reply Last reply
                0
                • DuncanD Offline
                  DuncanD Offline
                  Duncan
                  wrote on last edited by
                  #44

                  Hello!

                  What did you put for this line:

                  db.addDatabase("QODBC","odbcname");

                  Not sure what to put instead of odbcname.

                  Thanks!

                  1 Reply Last reply
                  0
                  • C Offline
                    C Offline
                    clochydd
                    wrote on last edited by
                    #45

                    Hello Duncan,

                    if you only open one database, you do not need to specify the connection name:

                    db.addDatabase("QODBC");
                    

                    If you plan work with more connections, use a name to identify each connection:

                    db.addDatabase("QODBC","myConn1");
                    
                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #46

                      Hi,

                      addDatabase is a static function that returns a QSqlDatabase instance that will use the selected backend.

                      So you must call it like that:
                      QSqlDatabase db = QSqlDatabase::addDatabase("QODBC")

                      The suggestion of @clochydd about the connection name still applies.

                      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

                      • Login

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