SQLite3 - 如何知道当前行是否是最后一行

时间:2016-09-23 17:43:53

标签: sqlite

由于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);

执行两次查询(一次有计数)是一个简单的解决方案,但这不是我要找的。

有什么想法吗?提前致谢。

1 个答案:

答案 0 :(得分:0)

SQLite仅在需要时计算下一个输出行。 因此,无法确定是否可以在没有实际尝试步入该行的情况下获得另一行。

如果您的代码确实需要知道当前行是否是最后一行,则必须复制该行中的所有数据。