如何使用Qt获取数据库大小?

时间:2015-07-02 11:02:00

标签: c++ mysql qt

我试图用qt c ++中的mysql数据库大小来定义我的矢量大小。执行命令后,它返回0并出错;

QMYSQLResult::data: column 1 out of range

排队:

int dbSize = query.value(1).toInt();

然而,当我在mysql-workbench中执行sql命令时,它说 15

以下是获取数据库大小的代码块:

int databaseConn::getDbSize()
{
    QSqlDatabase::database().transaction();
    QSqlQuery query;

    query.prepare("SELECT count(*) FROM images");
    query.exec();
    query.next();

    if( query.lastError().isValid())
    {
        qDebug() << query.lastError().text();
        QSqlDatabase::database().rollback();

        return -1;
    }
    else
    {
        int dbSize = query.value(1).toInt();

        qDebug() << dbSize;

        return dbSize;
    }
}

你能帮我解决一下我的错误吗?

PS:我不想调用整个数据库并将其计为:

QSqlQuery query("SELECT * FROM test");

query.record().count();

1 个答案:

答案 0 :(得分:2)

index中的

QVariant QSqlQuery::value ( int index ) const表示select语句中从零开始的字段索引。在您的情况下,唯一的字段count(*)将具有索引0:

int dbSize = query.value(0).toInt();

你可以得到字段&#39;从QSqlRecord计算:

qDebug() << query.record().count();