2017-05-04 74 views
1

我试图解决在关闭数据集后是否可以保存存储在TFDMemTable中的数据,而无需将其保存到文件中。

在TFDMemTable数据的内存持久性

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

我也查看了.SaveToStream/LoadFromStream,但又一次只保存/加载到TResourceOptions.PersistentFileName中指定的文件,我希望我可以将它保存在本地内存流中。

我有DevExpress组件,我知道他们可以坚持数据,但我试图使用FDAC REST示例,这些示例已经内置了以JSON形式传输表的功能。

我错过了一个设置的地方,这将允许我坚持数据,或没有人有办法做到这一点?

回答

1

下工作正常,我:

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; 
+0

阿TFDStanStorageBinLink是缺失的环节。 我确实认为FireDAC的这些相关组件需要更好地记录下他们的需求。 – mikelittlewood