【问题标题】:QSqlQuery how to get value of a count?QSqlQuery如何获取计数值?
【发布时间】: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 变量中

干杯

【问题讨论】:

    标签: c++ qt qsqlquery


    【解决方案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(); 将指针更改为第一条记录!

    【讨论】:

      猜你喜欢
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多