The previous blog mentions using FIREDAC to completely replace COM that set of things: Dataprovider,olevariant,clientdataset,dbexpress ...
Obviously, Datasnap's remote methods must increase the parameter types for the direct sequence of the FIREDAC dataset.
Add a new unit file starting from the UPDATE2 of XE5:data.firedacjsonreflect
Tfdjsondatasets is a DataSet list object that, as the name implies, can return one or more DataSet objects, whether single-table or master-slave table data can be passed.
Service-side Demo code:
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;
Client Demo Code:
var dslist:tfdjsondatasets;begin Fdmemtable1.close; Dslist: = ClientModule1.ServerMethods1Client.GetJSONData; Fdmemtable1.appenddata ( tfdjsondatasetsreader.getlistvalue (dslist, 0)); Fdmemtable1.open;end;
Datasnap the data type of the remote method that is added to support FIREDAC tfdjsondatasets