QSqlQuery如何获取计数值?
Posted
技术标签:
【中文标题】QSqlQuery如何获取计数值?【英文标题】:QSqlQuery how to get value of a count? 【发布时间】:2014-11-20 06:01:48 【问题描述】:我有一个查询,它只是根据某些条件获取表的计数,例如:
QSqlQuery query("SELECT COUNT(*) FROM some_table WHERE some_value = :something");
query.bindValue(":something", "something");
我的问题是我如何得到这个结果,显然这是你会使用的地方
query.value(int);
query.value(QString);
但是文档说不应该使用 int 索引一,因为我们不知道索引是什么并且我不能使用字符串一,因为没有字段可以定义为我想要的结果。所以假设我说的是正确的,我怎么能从这个查询中将计数整数值放入一个 int 变量中
干杯
【问题讨论】:
【参考方案1】:为字段计数创建一个别名。像这样:
QSqlQuery query("SELECT COUNT(*) CNT FROM some_table WHERE some_value = :something");
然后按名称查询CNT
【讨论】:
当我这样做时我得到QSqlQuery::value: not positioned on a valid record
你打电话给query.exec()
和query.first()
执行了查询是的,但没有放在第一位,现在试试
谢谢 :),读到 first()
将把自己定位在第一个完全有意义的有效记录上
可能会更改该变量名,但不想打错字!【参考方案2】:
你也可以使用:Query.next(); Query.value(0).toInt();
对于这个消息:QSqlQuery::value: 未定位在有效记录上 您应该这样做:Query.next(); 将指针更改为第一条记录!
【讨论】:
以上是关于QSqlQuery如何获取计数值?的主要内容,如果未能解决你的问题,请参考以下文章