我已经阅读了Qt文档,无法从语言本身直接找到从查询结果中获取行数和列数的方法。我能想到的唯一方法就是在mysql查询本身中使用SELECT COUNT(*) FROM table_name
。
就我所知,就像另一个连接器(PHP、python、C++等)一样,没有直接获取这些值的方法。也许我错过了什么。有什么可行的办法吗?也许是这样的:
int rows = db_connection->get_row_counts ();
int columns = db_connection->get_column_counts ();
发布于 2015-04-16 04:44:29
可以使用QSqlQuery::size()
获取行数,使用QSqlRecord::count()
获取列数:
QSqlQuery qry;
qry.prepare("SELECT * FROM someTable");
qry.exec();
qDebug() << "Number of Rows: " << qry.size();
qDebug() << "Number of columns: " << qry.record().count();
发布于 2020-11-28 00:54:47
要添加到Nejat的答案中,对于SQLite构造的数据库,size方法将不能工作,并返回-1。我相信这是因为SQLite不支持这种查询信息(https://doc.qt.io/qt-5/qsqlquery.html#size)。
除非存在更干净的方法,否则这将用于获取行计数:
QSqlQuery query;
int row_count = 0;
// Run some query
query.exec("SELECT * FROM SOME_TABLE");
while(query.next())
row_count++;
另外,还可以利用SQL COUNT函数:
QSqlQuery query;
int row_count = 0;
query.exec("SELECT COUNT(*) FROM SOME_TABLE");
if(query.first())
row_count = query.value(0).toInt();
https://stackoverflow.com/questions/29665323
复制相似问题