使用 QT 访问 PostgreSQL 数据库,将查询结果绑定到结构体中

下面是一个使用 QT 访问 PostgreSQL 数据库并将查询结果绑定到结构体的示例代码:

#include <QtSql>
#include <QCoreApplication>

// 定义结构体
struct Person {
    int id;
    QString name;
    int age;
};

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 创建数据库连接
    QSqlDatabase db = QSqlDatabase::addDatabase('QPSQL');
    db.setHostName('localhost');
    db.setDatabaseName('testdb');
    db.setUserName('postgres');
    db.setPassword('password');
    if (!db.open()) {
        qDebug() << 'Failed to connect to database!';
        return 1;
    }

    // 执行查询语句
    QSqlQuery query('SELECT id, name, age FROM persons');

    // 绑定查询结果到结构体
    QList<Person> persons;
    while (query.next()) {
        Person person;
        person.id = query.value(0).toInt();
        person.name = query.value(1).toString();
        person.age = query.value(2).toInt();
        persons.append(person);
    }

    // 打印查询结果
    for (const Person &person : persons) {
        qDebug() << 'ID:' << person.id << ', Name:' << person.name << ', Age:' << person.age;
    }

    // 关闭数据库连接
    db.close();

    return a.exec();
}

在上面的示例代码中,我们定义了一个名为'Person'的结构体,包含三个字段:'id'、'name'和'age'。然后使用 QT 访问 PostgreSQL 数据库,执行了一条查询语句,将查询结果绑定到'Person'结构体中,并将所有的查询结果保存到了一个'QList'对象中。最后,我们打印了所有查询结果,并关闭了数据库连接。

需要注意的是,我们使用了'QSqlQuery'类来执行查询语句,并使用'query.next()'方法来遍历查询结果。在遍历查询结果时,我们使用了'query.value()'方法来获取每个字段的值,并将它们分别赋值给了'Person'结构体中的对应字段。最后,我们将每个'Person'对象添加到了'persons'列表中。

QT 访问 PostgreSQL 数据库:使用结构体绑定查询结果

原文地址: http://www.cveoy.top/t/topic/nVjC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录