使用TFDJSONDataSets

一、服务器端(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 单元

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值