gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 02:24:35 25 4
gpt4 key购买 nike

我正在尝试使用 qt c++ 中的 mysql 数据库大小来定义我的 vector 大小。在我执行命令后,它返回 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();

最佳答案

QVariant QSqlQuery::value ( int index ) const 中的

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

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

您可以从QSqlRecord 获取字段数:

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

关于c++ - 如何使用Qt获取数据库大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31182770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com