首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用QtSql获取行数和列数?

如何使用QtSql获取行数和列数?
EN

Stack Overflow用户
提问于 2015-04-16 04:25:09
回答 2查看 9.3K关注 0票数 3

我已经阅读了Qt文档,无法从语言本身直接找到从查询结果中获取行数和列数的方法。我能想到的唯一方法就是在mysql查询本身中使用SELECT COUNT(*) FROM table_name

就我所知,就像另一个连接器(PHP、python、C++等)一样,没有直接获取这些值的方法。也许我错过了什么。有什么可行的办法吗?也许是这样的:

代码语言:javascript
运行
复制
int rows = db_connection->get_row_counts ();
int columns = db_connection->get_column_counts ();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-16 04:44:29

可以使用QSqlQuery::size()获取行数,使用QSqlRecord::count()获取列数:

代码语言:javascript
运行
复制
QSqlQuery qry;
qry.prepare("SELECT * FROM someTable");
qry.exec();

qDebug() << "Number of Rows: " << qry.size();
qDebug() << "Number of columns: " << qry.record().count();
票数 11
EN

Stack Overflow用户

发布于 2020-11-28 00:54:47

要添加到Nejat的答案中,对于SQLite构造的数据库,size方法将不能工作,并返回-1。我相信这是因为SQLite不支持这种查询信息(https://doc.qt.io/qt-5/qsqlquery.html#size)。

除非存在更干净的方法,否则这将用于获取行计数:

代码语言:javascript
运行
复制
 QSqlQuery query;
 int row_count = 0;
 
 // Run some query
 query.exec("SELECT * FROM SOME_TABLE");

 while(query.next())
     row_count++;

另外,还可以利用SQL COUNT函数:

代码语言:javascript
运行
复制
   QSqlQuery query;
   int row_count = 0;

   query.exec("SELECT COUNT(*) FROM SOME_TABLE");

   if(query.first())
       row_count = query.value(0).toInt();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29665323

复制
相关文章

相似问题

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