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":0,"RowState":"Modified","RowPriorState":"Unchanged","Original":{"unitid":"11","unitname":"个"},"Current":{"unitid":"11","unitname":"国"}},
{"RowID":2,"RowState":"Deleted","Original":{"unitid":"66","unitname":"66"}},
{"RowID":3,"RowState":"Inserted","Current":{"unitid":"13","unitname":"是"}}
]
}
],"RelationList":[],"UpdatesJournal":{"SavePoint":3,"Changes":[{"TabID":0,"RowID":2,"ChangeNumber":0},{"TabID":0,"RowID":3,"ChangeNumber":1},{"TabID":0,"RowID":0,"ChangeNumber":2}]}
}
}
}

  

 不论使用哪种开发语言,修改后的数据只要如此组织成JSON,就可以提交给FIREDAC中间件。 

  

FDMEMTABLE将修改后的数据序列为JSON的更多相关文章

  1. firedac数据集数据序列为JSON

    firedac数据集数据序列为JSON FIREDAC数据库引擎充分地考虑了跨平台和跨语言的支持. 因此,FIREDAC数据集可以序列为BIN\XML\JSON,三种格式. firedac数据集数据序 ...

  2. SqlServer触发器判断对表操作类型(增、删、改)并将修改后的数据映射到新表

    该文章为原创,日后可能会根据实际开发经验和网友评论,进行相应地方修改,为获得最新博客动态,望在转发博客的时候注明出处. 触发器要实现的功能: (1)获取对表Table1数据操作操作类型(insert. ...

  3. 结构体序列为JSON

    结构体序列为JSON 本例运行效果图: uses SynCommons; const /// JSON字符串 JSON1 = '{' + #13#10 + '"glossary": ...

  4. mormot数据库连接+查询+序列为JSON

    mormot数据库连接+查询+序列为JSON uses SynDB,SynCommons, SynDBRemote, SynOleDB, SynDBMidasVCL, mORMotMidasVCL p ...

  5. SQLSERVER中返回修改后的数据

    在公司看到同事写了个SQL2005的新特性的文章,觉得很实用,在这里和大家分享下. 这种技术主要是用到了inserted和deleted虚拟表,这两张表相信大家都很熟悉.以前我们主要是在触发器中使用. ...

  6. vue自定义公共组件components||在vue中,解决修改后的数据不能渲染到dom上的bug

    //主页面框架用来嵌入:Main.vue <el-col :span="24" > * { margin: 0; padding: 0; } html { width: ...

  7. ListView与.FindControl()方法的简单练习 #2 -- ItemUpdting事件中抓取「修改后」的值

    原文出處  http://www.dotblogs.com.tw/mis2000lab/archive/2013/06/24/listview_itemupdating_findcontrol_201 ...

  8. ALV判断修改后是否有不合法数据,有则选中错误行,高亮度显示。

    alv数据表维护表时错误行需要高亮度显示 gt_index_rows TYPE lvc_t_row,"用以存放要选择行的内表 gs_index_rows TYPE lvc_s_row.&qu ...

  9. ListView在编辑状态下不能获取修改后的值,无法更新数据

    ListView在编辑状态下不能获取修改后的值,获取到的总是以前的值解决方法:在page_load事件里写: if(!IsPostBack) { ListViewBind(); } 原因:这涉及到as ...

随机推荐

  1. Ex 5_26 变量约束是否能同时满足(并查集)_第九次作业

    利用并查集进行处理,定义一个维护数组components,components[i]表示变量序号为i的变量所处的集合,首先处理相等的变量,把它们放入同一个集合中,最后再处理不相等变量,若两个不相等的变 ...

  2. [PHP] 链表数据结构(单链表)

    链表:是一个有序的列表,但是它在内存中是分散存储的,使用链表可以解决类似约瑟夫问题,排序问题,搜索问题,广义表 单向链表,双向链表,环形链表 PHP的底层是C,当一个程序运行时,内存分成五个区(堆区, ...

  3. python+selenium一:对浏览器的操作

    # 1.打开Firefox浏览器from selenium import webdriverdriver = webdriver.Firefox()driver.get("https://w ...

  4. python3笔记(三)if...else、if...elif...else

    if语句 if 语句的基本用法如下: if 表达式: 语句块 其中,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例 如:a > band a != c),如果表达式为真, ...

  5. python 全栈开发,Day79(Django的用户认证组件,分页器)

    一.Django的用户认证组件 用户认证 auth模块 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中: 如果用户存在于数据库中,然后再验证用户 ...

  6. DDD模型领域WF到领域层(十五)

    实现超市的结算系统: 计算相应的优惠方式的接口 public interface ICompute { double GetResultTotalMoney(double TotalMoney); } ...

  7. DNS java

    https://www.cnblogs.com/549294286/p/5307316.html https://www.cnblogs.com/crazyacking/p/5672032.html

  8. 开始写博客,学习Linq(2)

    linq的功能是什么? 它将极大地改变应用程序或组件处理数据的方式.这是第一个功能. LINQ to Objects.LINQ to SQL和LINQ to XML,是LINQ三大主要功能,当然LIN ...

  9. Ubuntu 安装 H3C iNode 客户端

    Ubuntu 安装 H3C iNode 客户端 ​ 之前在网上找了很多方法,也找了不少的安装包,却由于各种各样的问题,最后都没有成功(因为自己太菜).而学校用的就是iNode,客户端装不了,只能用Wi ...

  10. Rstudio+mysql写入中文表

    1.在mysql中输入sql语句,新建一个支持中文的数据库 create database Chinadaydata DEFAULT CHARACTER SET gbk COLLATE gbk_chi ...