我试图用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();
答案 0 :(得分:2)
index
中的 QVariant QSqlQuery::value ( int index ) const
表示select语句中从零开始的字段索引。在您的情况下,唯一的字段count(*)
将具有索引0:
int dbSize = query.value(0).toInt();
你可以得到字段&#39;从QSqlRecord
计算:
qDebug() << query.record().count();