-1
这在mysql中很简单,这要归功于mysql_num_rows,但在sqlite3中不存在这种等价物。因此,问题是如何知道当前行是否是最后一行。SQLite3 - 如何知道当前行是否是最后一行
像以下重新排列没有帮助,因为任何以前绑定sqlite3_step无效后。
sqlite3_prepare_v2()
int fetched = 0;
int last = 0;
while (sqlite3_step(statement) == SQLITE_ROW) {
// this is the previous row
if(fetched) {
process(data, last);
}
fetched = 1;
data = sqlite3_column_text();
}
last = 1;
if(fetched)
process(data, last);
执行查询两次(一个计数)是一个微不足道的解决方案,但这不是我正在寻找的。
任何想法?提前致谢。
如果您没有使用'WITHOUT ROWID'子句创建表,'SELECT Max(ROWID)AS LastRow'应该为您提供最后创建的行。 AS LastRow是可选的。 –