这是我的问题:我需要存储 lot 的日志消息,并认为将它保存在SQLite3数据库中以便能够轻松搜索和过滤它是明智的。

我将在标准列表小部件中显示日志消息(使用wxWidgets)。该列表将包含多个列,可由用户进行排序和筛选。

现在,我不确定处理这个问题的最佳方法是什么。我正在考虑一些可能的解决方案:

  1. 将所有消息读入内存。当有新的或更改的日志消息(在列表中的随机位置)时,必须刷新整个列表。当用户想要筛选列表或对不同列进行排序时,也是如此。
  2. 将所有ID读入数组并按需检索完整的日志消息(当用户滚动列表以使其可见时)。
  3. 使用SQL接口按需获取结果,使用SQL选择所需的确切子结果。
  4. 但实际上,我只是不习惯处理这类问题,所以任何提示都会受到赞赏!

有帮助吗?

解决方案

如何使用分页?

SELECT *
FROM logs
WHERE ...
ORDER BY ...
LIMIT offset, count

偏移和计数是您可以选择的值。您可以使用它来获取任意数量的日志条目。然后添加下一个按钮以允许用户查看下一页条目。结合过滤和排序功能,日志搜索不会更容易。

其他提示

开始写这篇文章作为对Nadia的回答的评论,但我开始漫无边际,它太长了:)

请记住,随着日志条目的数量变得非常大,滚动条变得无用。卷轴中最微小的动作最终会大幅移动到列表中。这使得用户用于搜索列表是不切实际的。

考虑一下为什么用户实际上会查看这些条目并围绕它进行设计。非常大的列表不仅难以在代码中使用,它们对用户来说也很难。我可能会给他们一些过滤标准和分页结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top