gpt4 book ai didi

c++ - QSqlQuery 构造函数奇怪的行为

转载 作者:行者123 更新时间:2023-11-30 04:12:07 26 4
gpt4 key购买 nike

QMake 版本 3.0

Qt 版本 5.0.2

使用时

QSqlQuery query(QString("SELECT device_text_id FROM device"));
qDebug() << query.exec();

我在 query.exec() 中得到 false 并且在查询对象中没有返回结果但是当我使用时

QSqlQuery query;
query.prepare("SELECT device_text_id FROM device");
qDebug() << query.exec();

我得到真实且正确的返回数据。

documentation of QSqlQuery是在上述两种情况下使用的构造函数:

QSqlQuery(const QString & query = QString(), QSqlDatabase db = QSqlDatabase())

有关更多信息,我检查了我的 postgres (v9.1) 日志。每次以第一种方式执行查询时,我都会遇到此错误。

CET ERROR:  syntax error at end of input at character 9
CET STATEMENT: EXECUTE

我错过了什么吗?为什么第一种方法不起作用?

最佳答案

使用字符串调用构造函数直接执行该查询。构造对象后,查询已被执行。

当您随后调用 .exec() 时,它会尝试执行使用 prepare() 准备的查询。但是没有 prepare(),因此尝试失败。此失败会导致您在程序中看到的返回值 false

关于c++ - QSqlQuery 构造函数奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19937796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com