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)
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.
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 }; ...
Voilà le code incriminé:
Les messages d'erreur:
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"); }
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?..\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
Merci d'avance
David
Partager