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.2k 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.
  • C Offline
    C Offline
    clochydd
    wrote on last edited by
    #36

    Go to the Qt plugin source directory:
    cd QT_SRC_PATH\src\plugins\sqldrivers\psql

    Start building the plugins:
    (Change this to your mingw32 path: C:\Qt\Qt5.2.0\5.2.0\mingw48_32\bin)
    C:\Qt\Qt5.2.0\5.2.0\mingw48_32\bin\qmake “INCLUDEPATH+=c:\psql93_x86\include”
    “LIBS+=c:\psql93_x86\lib\libpq.lib” psql.pro

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