gpt4 book ai didi

Delphi ADO + 书签

转载 作者:行者123 更新时间:2023-12-03 15:53:26 30 4
gpt4 key购买 nike

我目前正在开发一个动态使用数据库的应用程序。

这意味着它被设计为可以在任何时间、任何结构上与任何数据库一起使用。

我担心的是,我希望对某些记录进行“标记”或添加书签,因此我需要使用 Filter 属性进行一些搜索,最后,我希望删除过滤器,并能够搜索添加书签的记录...

但是,书签似乎只有在指定的过滤器上设置了过滤器时才起作用,因此,如果我选择第二个已添加书签的项目,我会收到与预期完全不同的记录,即我做了一个过滤器,并为该项目添加了书签第一条记录,当我删除过滤器并转到书签 #1 时,我仍然只是去记录 nr。 1.

还有其他方法可以做到这一点吗?或者是否需要以不同的方式执行此操作?

希望这里有人能对此有一些疯狂的真正解决方案:)

最佳答案

Delphi 中的数据集只能为一条记录添加书签。 TDataset.BookMark 是该书签记录的占位符。过滤数据集时创建的书签在过滤器消失后也有效。因此,如果您过滤数据集并为记录添加书签,然后删除过滤器并转到书签记录,您应该会找到相同的记录。

如果您不确定您的书签是否仍然有效,特别是当您的数据集正在编辑时;然后您可以使用 TDataset.BookmarkValid 方法来验证您的书签。

如果您想要一个书签列表(而不仅仅是一个加书签的记录),那么您必须将它们保存在列表或数组中。在Delphi 2009及更新版本中,TBookMark数据类型定义为TBytes。在以前的版本中,TBookMark 被定义为字符串。因此,如果您使用的是 Delphi 2009 之前的 Delphi 版本,则可以使用 TStringList 的实例来保存书签列表。如果您使用的是 Delphi 2009 及更高版本,您可以使用 TList 泛型类型的实例(在 Generics.Collections 单元中声明)来存储书签列表。

如果您使用 DBGrid,则 DBGrid 有一个名为 SelectedRows 的属性,其类型为 TBookMarkList。您可以使用它来保存网格中选定行的书签列表。您需要在 DBGrid 的选项中启用多选。

关于Delphi ADO + 书签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4012885/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com