如何在SQLite3中寻找stmt到行号?

时间:2013-04-28 02:43:58

标签: c++ c sqlite

我找不到在sqlite3_stmt中寻找的方式。

我有一个输入视图让用户输入和执行SQL,但结果可能有大量的记录。我只想显示一段结果。

例如:我在stmt中有20000行。但我想显示前2000行(0-2000)。当用户单击下一个按钮时,我想显示第二个2000行(2000-4000)。当用户单击上一个按钮时,我希望显示倒带。所以我想在stmt中寻求。但我找不到一些SQLite3函数来寻找stmt。

我使用C / C ++接口。

1 个答案:

答案 0 :(得分:1)

SQLite动态计算语句的返回值。 移动到另一行的方法是调用sqlite3_step;不可能倒退。

你可以读取所有行并将它们保存在某个地方,但是当它们太多时会变得很实用。

您可以使用LIMIT/OFFSET clause执行单独的查询,以将结果限制为当前窗口。 但是,当偏移值变大时,这会变得效率低下,因为SQLite仍然需要计算所有这些记录。

要实现滚动游标,您应该保存页面的最后一个(/第一个)记录,并要求数据库返回该记录之后(/之前)的下一个(/之前)2000个记录。 这是explained in detail in the SQLite wiki

相关问题