FDMEMTABLE将修改后的数据序列为JSON

FDMEMTABLE将修改后的数据序列为JSON

procedure TForm1.Button3Click(Sender: TObject);
var
  memtable: TFDMemTable;
  ms: TStringStream;
begin
  memtable := FDMemTable2;
  memtable.CachedUpdates := True;
  if memtable.State in dsEditModes then
    memtable.Post;
  if memtable.ChangeCount = 0 then
    Exit;
  memtable.ResourceOptions.StoreItems := [siDelta, siMeta];
  ms := TStringStream.Create('', TEncoding.UTF8);
  try
    memtable.SaveToStream(ms, sfJSON);
    Memo1.Text := ms.DataString;
  finally
    ms.Free;
    memtable.ResourceOptions.StoreItems := [siDelta, siMeta, siData];
  end;
end;

  JSON字符串如下:

{
	"FDBS":
	{"Version":15,"Manager":{"UpdatesRegistry":true,
		"TableList":
		[{"class":"Table","Name":"qryOpen","SourceName":"tunit","SourceID":1,"TabID":0,"EnforceConstraints":false,"MinimumCapacity":50,"CheckNotNull":false,
			"ColumnList":
			[{"class":"Column","Name":"unitid","SourceName":"unitid","SourceID":1,"DataType":"AnsiString","Size":4,"Searchable":true,"Base":true,"OInUpdate":true,"OInWhere":true,"OInKey":true,"OriginColName":"unitid","SourcePrecision":4,"SourceSize":4},
			 {"class":"Column","Name":"unitname","SourceName":"unitname","SourceID":2,"DataType":"AnsiString","Size":6,"Searchable":true,"AllowNull":true,"Base":true,"OAllowNull":true,"OInUpdate":true,"OInWhere":true,"OriginColName":"unitname","SourcePrecision":6,"SourceSize":6}
			],"ConstraintList":[],"ViewList":[],
			"RowList":
			[{"RowID":1,"RowState":"Deleted","Original":{"unitid":"12","unitname":"双"}},{"RowID":2,"RowState":"Inserted","Current":{"unitid":"13","unitname":"中"}}
			]
		 }
		],"RelationList":[],"UpdatesJournal":{"SavePoint":2,"Changes":[{"TabID":0,"RowID":1,"ChangeNumber":0},{"TabID":0,"RowID":2,"ChangeNumber":1}]}}
	}
}

  

猜你喜欢

转载自www.cnblogs.com/hnxxcxg/p/10630727.html
今日推荐