如何使用 QtSql 获取行数和列数
How to get numbers of rows and columns using QtSql?
我已经阅读了Qt文档,但无法从语言本身找到从查询结果中获取行数和列数的直接方法。我能想到的唯一方法是在 mysql 查询本身中使用SELECT COUNT(*) FROM table_name
。
就像另一个连接器(PHP,python,C++等)一样,据我所知,没有直接的方法可以获取这些值。也许我错过了什么。那么,有没有可能的方法可以做到这一点?也许是这样的:
int rows = db_connection->get_row_counts ();
int columns = db_connection->get_column_counts ();
您可以使用
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();
为了补充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();
相关文章:
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 数组长度,为什么从命令行获取时不能使用它?
- C++如何仅使用MOV在x86上实现发布和获取
- 使用递归时获取变量的奇怪值
- 如何在不为其声明变量的情况下获取和使用常量值的地址?
- 获取有关使用未初始化内存的错误代码
- 仅获取进程使用的时间
- 在C 中获取Invalig使用非静态数据成员错误
- 获取错误 - 使用垫子时,CV :: MAT’没有名为“ Get”的成员
- 如何在代码中获取功能使用的名称
- 获取键盘使用代码,如何从read()发送触发器
- 如何通过基类从派生类中获取成员(使用纯虚拟的除外)
- 如何以编程方式获取进程使用的内存量
- Directx获取游戏使用的VRAM
- 正在获取要使用的移动构造函数/赋值运算符
- 如何在C++程序中获取和使用头文件 <graphics.h>?
- gcc链接器获取未使用对象的列表