我怎样才能保留一个带有名称的 FireDAC 书签列表?

how can I keep a list of FireDAC bookmarks with a name?

我使用的是最后一个 delphi 版本,我想要一个类似 TStringList 的东西(我可以在其中保存一个字符串列表,并链接一个整数 TObject),但我需要一个列表而不是一个整数 TObject的书签。

我试过仿制药

mySL: TList<TBookmark>;

但我只保存了没有描述的书签。 我希望能够做类似的事情:

var myBookmark1 := TBookmark(mySL('test1'));
var myBookmark2 := TBookmark(mySL('test2'));

你能帮帮我吗? 谢谢

的确,泛型是最简单的解决方案,但您应该使用 TDictionary(键值对的集合)而不是 TList(仅值的集合)。这样您就可以为每个书签关联一个键。

var 
  mySL: TDictionary<String, TBookmark>;
  Bookmark: TBookmark;
begin
  ...
  ...
  // Create the Dictionary
  mySL := TDictionary<String, TBookmark>.Create;
  // Store Bookmarks
  mySL.Add('Starting Position', MyQuery.GetBookmark);
  ...
  // Retrieve Bookmarks
  mySL.TryGetValue('Starting Position', Bookmark);
  ...
end

方法 TryGetValue 将 return 您一个布尔值,通知您书签是否已找到(并设置为 Bookmark 变量)或书签不存在。