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;
我正在尝试确定是否可以在关闭数据集后保留存储在 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;