首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QVariant返回无效,同时该值有效。

问QVariant返回无效,同时该值有效。
EN

Stack Overflow用户
提问于 2016-08-03 19:28:20
回答 1查看 2.9K关注 0票数 0

我有一个像这样的小功能

代码语言:javascript
复制
bool QcgDatabase::onceindb(const QString& userId)
{
    mDb->prepareSqlQuery("SELECT count(*) FROM mytable WHERE userid=:userId;", "database");
    mDb->prepareBindValue(":userId", userId);
    mDb->sqlExec();

    bool d = mDb->sqlQuery().isActive();
    QVariant c = mDb->sqlQuery().value(QString("count(*)"));
    int e = c.toInt();

    if (e == 1) {
        return true;
    }
    else {
        return false;
    }
}

在SQL中执行此命令时,结果如下所示

​

​

我只想取值2作为下面的比较,但是在代码中,当我调试时,QVariant c总是返回无效的,因此e is always = 0。我认为我的SQL命令不是活动的,但是当我调试时,bool d总是返回true。你们知道为什么吗?如何按预期接收2?

EN

回答 1

Stack Overflow用户

发布于 2016-08-05 14:16:09

您的问题是,您试图从具有特殊(在某些地方无效)名称count(*)的列中获取结果。您可以为该列设置别名,并使用该列别名获取值:

代码语言:javascript
复制
...
mDb->prepareSqlQuery("SELECT count(*) as count FROM mytable WHERE userid=:userId;", "database");
...
QVariant c = mDb->sqlQuery().value("count");
...

检查错误状态的返回值也是很好的实践.

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

https://stackoverflow.com/questions/38752111

复制
相关文章

相似问题

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