在QT中用 QSqlQuery query;查询, 第一次 query.exec();结果是对的,可是第二次执行的时候读的数据是错的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在QT中用 QSqlQuery query;查询, 第一次 query.exec();结果是对的,可是第二次执行的时候读的数据是错的相关的知识,希望对你有一定的参考价值。
QSqlQuery query;
query.exec(“仅仅是查询语句“);
。。。输出第一次结果
query.exec(“仅仅是查询语句“);
。。。输出第二次结果
发现结果不一样。。为什么啊?大虾帮帮忙,查了好久了。。不懂。。。
QSqlQuery如何获取计数值?
【中文标题】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(); 将指针更改为第一条记录!
【讨论】:
以上是关于在QT中用 QSqlQuery query;查询, 第一次 query.exec();结果是对的,可是第二次执行的时候读的数据是错的的主要内容,如果未能解决你的问题,请参考以下文章
qt : QSqlQuery 返回 QVariant 的向量
sqlite中以GBK存的中文,在Linux环境的QT开发中QSqlQuery查询出来是乱码,需要如何转换,具体如何操作,谢
qt QSqlQuery 查询字符串类型字段,当不存在的时候,返回"0",如何解决请高手赐教?