由于mysql_num_rows,这在mysql中是微不足道的,但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);
执行两次查询(一次有计数)是一个简单的解决方案,但这不是我要找的。
有什么想法吗?提前致谢。
答案 0 :(得分:0)
SQLite仅在需要时计算下一个输出行。 因此,无法确定是否可以在没有实际尝试步入该行的情况下获得另一行。
如果您的代码确实需要知道当前行是否是最后一行,则必须复制该行中的所有数据。