首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QSqlQuery构造函数奇怪行为

QSqlQuery构造函数奇怪行为
EN

Stack Overflow用户
提问于 2013-11-12 19:08:10
回答 1查看 194关注 0票数 1

QMake 3.0版

Qt版本5.0.2

在使用时

代码语言:javascript
复制
QSqlQuery query(QString("SELECT device_text_id FROM device"));
qDebug() << query.exec();

我在query.exec()中得到false,查询对象中没有返回任何结果,但当我使用

代码语言:javascript
复制
QSqlQuery query;
query.prepare("SELECT device_text_id FROM device");
qDebug() << query.exec();

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

QSqlQuery文档中,在上述两种情况下都使用了构造函数:

代码语言:javascript
复制
QSqlQuery(const QString & query = QString(), QSqlDatabase db = QSqlDatabase())

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

代码语言:javascript
复制
CET ERROR:  syntax error at end of input at character 9
CET STATEMENT:  EXECUTE 

我是不是遗漏了什么?为什么第一种方法不起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-12 19:55:45

用字符串调用构造函数直接执行该查询。一旦构造了对象,查询就已经执行了。

然后调用.exec()时,它将尝试执行使用prepare()准备的查询。但是没有prepare(),所以这个尝试失败了。此失败导致程序中看到的返回值false

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19937796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档