Bonjour,

Je débute avec Qt, et j'ai envie de l'utiliser conjointement avec postgresql 8.2 qui semble etre la version la plus récente du SGBD qui soit supportée par Qt.
J'en ai eu la preuve dans les sources: (fichier qsql_psql.h)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
...
 
class Q_EXPORT_SQLDRIVER_PSQL QPSQLDriver : public QSqlDriver
{
    Q_OBJECT
public:
    enum Protocol {
        Version6 = 6,
        Version7 = 7,
        Version71 = 8,
        Version73 = 9,
        Version74 = 10,
        Version8 = 11,
        Version81 = 12,
        Version82 = 13
    };
 
...
Seulement, j'ai testé ici et là des bouts de code trouvé sur google, même ici sur developpez.com, mais avec la version 4.7 de Qt, je n'ai même pas réussi à les compiler.

Voilà le code incriminé:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
#include "mainwindow.h"
#include "ui_qtexquis.h"
#include <QMessageBox>
#include <QStringListModel>
#include <QtSql/QSqlDatabase>
#include <QtSql/QPSQLDriver>
//#include "qtdir/src/sql/drivers/psql/qsql_psql.cpp"
 
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
 
}
 
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
MainWindow::~MainWindow()
{
    delete ui;
}
 
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void MainWindow::on_pushButton_clicked()
{
    // Bouton
 
 
 PGconn *con = PQconnectdb("host=localhost user=postgres password=postgres dbname=springfield");
 QPSQLDriver *drv =  new QPSQLDriver(con);
 QSqlDatabase db = QSqlDatabase::addDatabase(drv); // becomes the new default connection
 QSqlQuery query;
 query.exec("SELECT NAME, ID FROM STAFF");
}
Les messages d'erreur:

..\qtexquis1\mainwindow.cpp: In member function 'void MainWindow::on_pushButton_clicked()':

..\qtexquis1\mainwindow.cpp:33: error: 'PQconnectdb' was not declared in this scope

..\qtexquis1\mainwindow.cpp:36: error: aggregate 'QSqlQuery query' has incomplete type and cannot be defined
Auriez-vous un bout de code à partir duquel je puisse me connecter à une base PostgreSQL 8.2.18, et que je puisse ainsi commencer à voler de mes propres ailes?

Merci d'avance

David