一、服务器端(DataSnap REST Application)
1、放入FDQuery1、FDConnection1、FDGUIxWaitCursor1、FDStanStorageBinLink1、FDStanStorageJSONLink1、FDSchemaAdapter1。
2、FDQuery1的SchemaAdapter属性设置为FDSchemaAdapter1
FDConnection1连接MySql数据库,CharacterSET设置为UTF8,否则写入数据库会乱码、
3、增加函数
public
{ Public declarations }
function GetTable2Json: TFDJSONDataSets;
function PostDataSet(const ADaltaList: TFDJSONDeltas): Integer;
function TServerMethods1.GetTable2Json: TFDJSONDataSets;
begin
FDQuery1.Close;
FDQuery1.Open();
Result := TFDJSONDataSets.Create;
TFDJSONDataSetsWriter.ListAdd(Result, FDQuery1);
end;
function TServerMethods1.PostDataSet(const ADaltaList: TFDJSONDeltas): Integer;
var
LApply: IFDJSONDeltasApplyUpdates;
begin
//
LApply := TFDJSONDeltasApplyUpdates.Create(ADaltaList);
Result := LApply.ApplyUpdates('sss', FDQuery1.Command)
end;
4、为了能够修改数据,需要在uses中加入 Data.FireDACJSONReflect 单元
二。客户端
1、放入DSRestConnection1、FDMemTable1、DataSource1、FDStanStorageBinLink1、FDStanStorageJSONLink1
2、DSRestConnection1设置
host
port
loginPrompt
3、DataSource1的dataset设置为FDMemTable1
4、FDMemTable1的 CachedUpdates设置为 True
5、增加代码
procedure TForm1.Button1Click(Sender: TObject);
var
aServer: TServerMethods1Client;
LDataSetList: TFDJSONDataSets;
aDataSet: TFDAdaptedDataSet;
begin
aServer := TServerMethods1Client.Create(DSRestConnection1);
LDataSetList := aServer.GetTable2Json();
aDataSet := TFDJSONDataSetsReader.GetListValue(LDataSetList, 0);
FDMemTable1.Active := false;
FDMemTable1.AppendData(aDataSet);
FDMemTable1.Active := True;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
LDeltabList: TFDJSONDeltas;
aServer: TServerMethods1Client;
begin
FDMemTable1.Edit;
FDMemTable1.FieldValues['tt'] := '中文';
FDMemTable1.Post;
LDeltabList := TFDJSONDeltas.Create;
TFDJSONDeltasWriter.ListAdd(LDeltabList, 'sss', FDMemTable1);
aServer := TServerMethods1Client.Create(DSRestConnection1);
aServer.PostDataSet(LDeltabList);
aServer.Free;
end;
6、4、为了能够修改数据,需要在uses中加入 Data.FireDACJSONReflect 单元