2017-05-04 75 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