sqlite:转到结果集中的上一条记录?

时间:2010-06-28 08:00:22

标签: c sqlite iteration

在SQLite中,使用标准的C接口 - 在结果集中迭代向后是否有一种简单的方法(即使有点破解)?我试图避免自己缓存结果。

我想到的一个解决方案是执行一个额外的查询,它会返回相反的结果,但我不确定它会有多高效。

1 个答案:

答案 0 :(得分:2)

不,sqlite迭代代码是特定的单向。我甚至不知道实现你想要的黑客方法,除了当然自己缓存: - )。

反向查询的方法可能有点工作,但你不能再使反向查询变为“向前”(向后),而不是使正常查询反向。

一旦你的前向查询到了第50行并且你的反向查询已经到了第20行,那么第21行到第49行将无法访问。因此,您无法将其用作通用浏览方法。

假设您正在尝试实现一种分页机制,例如一次显示五十条记录并允许用户在行中向前和向后滚动,您可能只需要采用历史悠久的方法来运行许多查询,一次一个,每个只检索五十行。类似的东西:

select f1, f2, f3 from tbl limit 50 offset 0
select f1, f2, f3 from tbl limit 50 offset 50
select f1, f2, f3 from tbl limit 50 offset 100

等等。您可以使用偏移和限制将窗口限制在桌面上。