首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi ADO +书签

Delphi ADO +书签
EN

Stack Overflow用户
提问于 2010-10-25 16:24:31
回答 1查看 3K关注 0票数 3

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

这意味着它被设计为在任何时间与任何数据库和任何结构一起工作。

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

但是,似乎只有在指定的过滤器上设置了过滤器,书签才有效,所以如果我选择第二个书签项目,我收到的记录与我预期的完全不同,即我做了一个过滤器,并将第一条记录加入书签,当我删除过滤器并转到书签#1时,我仍然只转到record nr。1.

有没有其他方法可以做到这一点?或者它需要以不同的方式来做这件事?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-25 17:20:07

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

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

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

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4012885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档