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();我得到真实和正确的数据返回。
在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 我是不是遗漏了什么?为什么第一种方法不起作用?
发布于 2013-11-12 19:55:45
用字符串调用构造函数直接执行该查询。一旦构造了对象,查询就已经执行了。
然后调用.exec()时,它将尝试执行使用prepare()准备的查询。但是没有prepare(),所以这个尝试失败了。此失败导致程序中看到的返回值false。
https://stackoverflow.com/questions/19937796
复制相似问题