前面的博客提到用FIREDAC全面替代COM那一套東西:DATAPROVIDER,OLEVARIANT,CLIENTDATASET,DBEXPRESS。。。
顯然,DATASNAP的遠程方法必須增加對FIREDAC數據集直接序列的參數類型。
從XE5的UPDATE2開始增加一個新的單元文件:Data.FireDACJSONReflect
TFDJSONDataSets是一個數據集列表對象,顧名思義可以返回一個或多個數據集對象,不論是單表或者主從表數據都可傳遞。
服務端演示代碼:
function TServerMethods1.GetJSONData: TFDJSONDataSets;
begin
Result := TFDJSONDataSets.Create;
if not FDMemTable1.Active then
FDMemTable1.LoadFromFile('../../customer.fds')
else
FDMemTable1.Active := False;
TFDJSONDataSetsWriter.ListAdd(Result, FDMemTable1);
end;
客戶端演示代碼:
var
DSList: TFDJSONDataSets;
begin
FDMemTable1.Close;
DSList := ClientModule1.ServerMethods1Client.GetJSONData;
FDMemTable1.AppendData(
TFDJSONDataSetsReader.GetListValue(DSList, 0));
FDMemTable1.Open;
end;
