FDMEMTABLE将修改后的数据序列为JSON
FDMEMTABLE将修改后的数据序列为JSON
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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字符串如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | { "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中间件。
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/10630727.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2017-03-31 ubuntu允许mysql远程连接
2016-03-31 咏南中间件集群