QT 访问 PostgreSQL 数据库:使用结构体绑定查询结果
使用 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'列表中。
原文地址: http://www.cveoy.top/t/topic/nVjC 著作权归作者所有。请勿转载和采集!