先说思路:
获取列:
直接执行query语句后,通过sqlrecord进行获取列;
代码如下:
int queryColumnCount(QSqlQuery query)
{
QSqlRecord sqlRecord = query.record();
return sqlRecord.count();
}
获取行数:
也是执行query语句以后,通过last指针获取
代码如下:
int queryRowCount(QSqlQuery query)
{
int initialPos = query.at();
// Very strange but for no records .at() returns -2
int pos = 0;
if (query.last()){
pos = query.at() + 1;
}else{
pos = 0;
}
// Important to restore initial pos
query.seek(initialPos);
return pos;
}
这个稍微注意一点就是 pos计算后需要将query的指针放到首地址,避免后面使用获取不到数据。