我找不到在sqlite3_stmt
中寻找的方式。
我有一个输入视图让用户输入和执行SQL,但结果可能有大量的记录。我只想显示一段结果。
例如:我在stmt中有20000行。但我想显示前2000行(0-2000)。当用户单击下一个按钮时,我想显示第二个2000行(2000-4000)。当用户单击上一个按钮时,我希望显示倒带。所以我想在stmt中寻求。但我找不到一些SQLite3函数来寻找stmt。
我使用C / C ++接口。
答案 0 :(得分:1)
SQLite动态计算语句的返回值。
仅移动到另一行的方法是调用sqlite3_step
;不可能倒退。
你可以读取所有行并将它们保存在某个地方,但是当它们太多时会变得很实用。
您可以使用LIMIT/OFFSET clause执行单独的查询,以将结果限制为当前窗口。 但是,当偏移值变大时,这会变得效率低下,因为SQLite仍然需要计算所有这些记录。
要实现滚动游标,您应该保存页面的最后一个(/第一个)记录,并要求数据库返回该记录之后(/之前)的下一个(/之前)2000个记录。 这是explained in detail in the SQLite wiki。