我想知道什么时候我的查询返回了最后一个结果。
我目前的代码:
if (db.isOpen()) {
QSqlQuery query(db);
ret = query.exec(QString("select * from history WHERE cID = '%1' order by date(time) ASC;").arg(channel));
if (ret) {
while (query.next()) {
// How can i know that there are no more results to loop through here?
addMessage(query.value(1).toString(), query.value(2).toString(), timeStr, "NO");
}
}
}
有什么想法吗?
答案 0 :(得分:1)
QSqlQuery :: last()检索结果中的最后一条记录(如果可用),并将查询定位在检索到的记录上。调用last()后,您可以检索最后一条记录的索引,并使用first()和previous()在第一条记录之前定位查询:
int lastRecordIndex = 0;
if(query.last())
{
lastRecordIndex = query.at();
query.first();
query.previous();
}
while (query.next()) {
if(query.at()==lastRecordIndex)
{
//This is the last record
}
addMessage(query.value(1).toString(), query.value(2).toString(), timeStr, "NO");
}