Connessione a PostgreSQL con Qt

Connessione a PostgreSQL con Qt

Qt offre già parecchi driver per database; basta includere sql nel file del progetto per accedere a tutte le classi:

QT += core gui sql

Però, in determinati casi, è comunque necessario installare delle librerie; ed è il caso di PostgreSQL!

Infatti, avendo il database installato su un altro pc, sul mio pc ho dovuto installare libpq.

Su Arch Linux:

# pacman -S libpqxx

Detto ciò, questo il codice:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), 
    ui(new Ui::MainWindow) {
    ui->setupUi(this);
}

MainWindow::~MainWindow() {
    delete ui;
}

void MainWindow::on_pushButton_clicked() {
    QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
    db.setHostName("192.168.1.31");
    db.setDatabaseName("test");
    db.setUserName("postgres");
    db.setPassword("9211");
    bool isOpened = db.open();

    if (isOpened) {
        QSqlQuery query("SELECT * FROM persone");
        while (query.next()) {
            qDebug() << "ID: " << query.value("id").toString()
                     << ";EMAIL: " << query.value("email").toString();
        }
    } else {
        qDebug() << db.lastError().text();
    }
}

Enjoy!