TFDMemTable 数据在内存中的持久化

In memory persistance of TFDMemTable data

我正在尝试确定是否可以在关闭数据集后保留存储在 TFDMemTable 中的数据,而不必将其保存到文件中。

我检查了 TResourceOptions.Persistent 但这只会在运行时保存到 TResourceOptions.PersistentFileName 中指定的文件名。如果将文件名留空,则可以在设计时将数据保存在 dfm 中,但这没有用。

我还查看了 .SaveToStream/LoadFromStream,但同样只有 saves/loads 到 TResourceOptions.PersistentFileName 中指定的文件,我希望我可以将它保存在本地内存流中。

我有 DevExpress 组件,我知道它们可以保存数据,但我正在尝试使用 FDAC REST 示例,这些示例具有将表传输为 JSON.[=18= 的内置功能]

我是否遗漏了某个地方允许我保留数据的设置,或者有人有办法做到这一点吗?

以下对我来说很好用:

procedure TForm1.Button5Click(Sender: TObject);
var
  MS : TMemoryStream;
begin
  //  Requires TFDStanStorageBinLink on form/datamodule
  MS := TMemoryStream.Create;
  try
    FDMemTable1.SaveToStream(MS);
    FDMemTable1.Close;
    // sometime later
    MS.Position := 0;
    FDMemTable1.LoadFromStream(MS);
  finally
    MS.Free;
  end;
end;