咏南中间件JSON序列类

1)支持跨平台、跨语言

2)支持主从表数据序列、还原,支持任意数量的表

主从表数据序列为JSON字符串样式:

{
"rows": [
{
"FDBS": {
"Version": 15,
"Manager": {
"UpdatesRegistry": true,
"TableList": [
{
"class": "Table",
"Name": "qryOpen",
"SourceName": "tgoods",
"SourceID": 1,
"TabID": 0,
"EnforceConstraints": false,
"MinimumCapacity": 50,
"CheckReadOnly": false,
"ColumnList": [
{
"class": "Column",
"Name": "goodsid",
"SourceName": "goodsid",
"SourceID": 1,
"DataType": "AnsiString",
"Size": 8,
"Searchable": true,
"Base": true,
"OInUpdate": true,
"OInWhere": true,
"OInKey": true,
"OriginColName": "goodsid",
"SourcePrecision": 8,
"SourceSize": 8
},
{
"class": "Column",
"Name": "barcode",
"SourceName": "barcode",
"SourceID": 2,
"DataType": "AnsiString",
"Size": 18,
"Searchable": true,
"AllowNull": true,
"Base": true,
"OAllowNull": true,
"OInUpdate": true,
"OInWhere": true,
"OriginColName": "barcode",
"SourcePrecision": 18,
"SourceSize": 18
},
{
"class": "Column",
"Name": "goodsname",
"SourceName": "goodsname",
"SourceID": 3,
"DataType": "AnsiString",
"Size": 50,
"Searchable": true,
"Base": true,
"OInUpdate": true,
"OInWhere": true,
"OriginColName": "goodsname",
"SourcePrecision": 50,
"SourceSize": 50
},
{
"class": "Column",
"Name": "pyjm",
"SourceName": "pyjm",
"SourceID": 4,
"DataType": "AnsiString",
"Size": 50,
"Searchable": true,
"AllowNull": true,
"Base": true,
"OAllowNull": true,
"OInUpdate": true,
"OInWhere": true,
"OriginColName": "pyjm",
"SourcePrecision": 50,
"SourceSize": 50
},
{
"class": "Column",
"Name": "gg",
"SourceName": "gg",
"SourceID": 5,
"DataType": "AnsiString",
"Size": 30,
"Searchable": true,
"AllowNull": true,
"Base": true,
"OAllowNull": true,
"OInUpdate": true,
"OInWhere": true,
"OriginColName": "gg",
"SourcePrecision": 30,
"SourceSize": 30
},
{
"class": "Column",
"Name": "kindid",
"SourceName": "kindid",
"SourceID": 6,
"DataType": "AnsiString",
"Size": 8,
"Searchable": true,
"AllowNull": true,
"Base": true,
"OAllowNull": true,
"OInUpdate": true,
"OInWhere": true,
"OriginColName": "kindid",
"SourcePrecision": 8,
"SourceSize": 8
},
{
"class": "Column",
"Name": "jj",
"SourceName": "jj",
"SourceID": 7,
"DataType": "BCD",
"Precision": 18,
"Scale": 4,
"Searchable": true,
"AllowNull": true,
"Base": true,
"OAllowNull": true,
"OInUpdate": true,
"OInWhere": true,
"OriginColName": "jj",
"SourcePrecision": 18,
"SourceScale": 4
},
{
"class": "Column",
"Name": "lsj",
"SourceName": "lsj",
"SourceID": 8,
"DataType": "BCD",
"Precision": 18,
"Scale": 4,
"Searchable": true,
"AllowNull": true,
"Base": true,
"OAllowNull": true,
"OInUpdate": true,
"OInWhere": true,
"OriginColName": "lsj",
"SourcePrecision": 18,
"SourceScale": 4
},
{
"class": "Column",
"Name": "kcxx",
"SourceName": "kcxx",
"SourceID": 9,
"DataType": "BCD",
"Precision": 18,
"Scale": 4,
"Searchable": true,
"AllowNull": true,
"Base": true,
"OAllowNull": true,
"OInUpdate": true,
"OInWhere": true,
"OriginColName": "kcxx",
"SourcePrecision": 18,
"SourceScale": 4
},
{
"class": "Column",
"Name": "kcsx",
"SourceName": "kcsx",
"SourceID": 10,
"DataType": "BCD",
"Precision": 18,
"Scale": 4,
"Searchable": true,
"AllowNull": true,
"Base": true,
"OAllowNull": true,
"OInUpdate": true,
"OInWhere": true,
"OriginColName": "kcsx",
"SourcePrecision": 18,
"SourceScale": 4
},
{
"class": "Column",
"Name": "unitid",
"SourceName": "unitid",
"SourceID": 11,
"DataType": "AnsiString",
"Size": 8,
"Searchable": true,
"AllowNull": true,
"Base": true,
"OAllowNull": true,
"OInUpdate": true,
"OInWhere": true,
"OriginColName": "unitid",
"SourcePrecision": 8,
"SourceSize": 8
},
{
"class": "Column",
"Name": "unitname",
"SourceName": "unitname",
"SourceID": 12,
"DataType": "AnsiString",
"Size": 10,
"Searchable": true,
"AllowNull": true,
"Base": true,
"OAllowNull": true,
"OInUpdate": true,
"OInWhere": true,
"OriginColName": "unitname",
"SourcePrecision": 10,
"SourceSize": 10
},
{
"class": "Column",
"Name": "kindname",
"SourceName": "kindname",
"SourceID": 13,
"DataType": "AnsiString",
"Size": 30,
"Searchable": true,
"AllowNull": true,
"Base": true,
"OAllowNull": true,
"OInUpdate": true,
"OInWhere": true,
"OriginColName": "kindname",
"SourcePrecision": 30,
"SourceSize": 30
}
],
"ConstraintList": [],
"ViewList": [],
"RowList": [
{
"RowID": 0,
"Original": {
"goodsid": "100036",
"barcode": "100036",
"goodsname": "秋冬四件套哦",
"pyjm": "",
"gg": "",
"kindid": "12002",
"jj": 100,
"lsj": 430,
"kcxx": 50,
"kcsx": 5,
"unitid": "15",
"unitname": "箱套",
"kindname": "床上用品"
}
},
{
"RowID": 1,
"Original": {
"goodsid": "100050",
"barcode": "100050",
"goodsname": "天堂伞",
"pyjm": "wrth",
"gg": "",
"kindid": "1",
"jj": 10,
"lsj": 0,
"kcxx": 0,
"kcsx": 0,
"unitid": "15",
"unitname": "箱套",
"kindname": "1111"
}
},
{
"RowID": 2,
"Original": {
"goodsid": "100054",
"barcode": "100054",
"goodsname": "我们的 哎",
"pyjm": "WMD D7",
"gg": "",
"kindid": "11002",
"jj": 0,
"lsj": 0,
"kcxx": 0,
"kcsx": 0,
"unitid": "18",
"unitname": "公斤",
"kindname": "饮料"
}
},
{
"RowID": 3,
"Original": {
"goodsid": "100055",
"barcode": "100055",
"goodsname": "娃哈哈纯净水500ML",
"pyjm": "WHHCJS500ML",
"kindid": "11001",
"jj": 0,
"lsj": 0,
"kcxx": 0,
"kcsx": 0,
"unitid": "18",
"unitname": "公斤",
"kindname": "奶粉"
}
}
]
}
],
"RelationList": [],
"UpdatesJournal": {
"Changes": []
}
}
}
},
{
"FDBS": {
"Version": 15,
"Manager": {
"UpdatesRegistry": true,
"TableList": [
{
"class": "Table",
"Name": "qryOpen",
"SourceName": "tunit",
"SourceID": 1,
"TabID": 0,
"EnforceConstraints": false,
"MinimumCapacity": 50,
"CheckReadOnly": 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,
"Original": {
"unitid": "11",
"unitname": "个"
}
},
{
"RowID": 1,
"Original": {
"unitid": "12",
"unitname": "双"
}
}
]
}
],
"RelationList": [],
"UpdatesJournal": {
"Changes": []
}
}
}
}
]
}

 主从表查询调用代码:

procedure TForm1.btnQueryClick(Sender: TObject);
// 主从表 查询
begin
var url: TynUrl := TynUrl.Create;
var serial: TynJsonSerial := TynJsonSerial.Create;
var send: TMemoryStream := TMemoryStream.Create;
try
url.url := Edit1.Text;
url.command := 'query91'; // 命令
url.params.Add('count=2'); // 查询几个表的数据
url.params.Add('accountno=1'); // 帐套号
url.params.Add('sql=select * from tgoods'); // 查询SQL
url.params.Add('sql2=select * from tunit'); // 查询SQL2
// Memo1.Text := IdHTTP1.Post(url.text, send);
serial.Text := IdHTTP1.Post(url.text, send);
serial.ReadFDMemTable(0, FDMemTable1);
serial.ReadFDMemTable(1, FDMemTable2);
finally
serial.DisposeOf;
send.DisposeOf;
url.DisposeOf;
end;
end;

  主从表提交调用代码:

procedure TForm1.btnPostClick(Sender: TObject);
// 主从表 提交
begin
var url: TynUrl := TynUrl.Create;
var serial: TynJsonSerial := TynJsonSerial.Create;
var send: TMemoryStream := TMemoryStream.Create;
try
url.url := Edit1.Text;
url.command := 'save91'; // 命令
url.params.Add('count=2'); // 提交几个表的数据
url.params.Add('accountno=1'); // 帐套号
url.params.Add('tablename=tgoods'); // 表名
url.params.Add('tablename2=tunit'); // 表名2
url.params.Add('delta=' + serial.FDDeltaToJson(FDMemTable1)); // delta
url.params.Add('delta2=' + serial.FDDeltaToJson(FDMemTable2)); // delta2
serial.Text := IdHTTP1.Post(url.text, send);
if Pos('true', serial.Text) > 0 then
ShowMessage('数据提交成功')
else
ShowMessage('数据提交失败');
finally
serial.DisposeOf;
send.DisposeOf;
url.DisposeOf;
end;
end;

  

咏南中间件JSON序列类的更多相关文章

  1. 咏南中间件D7客户端演示

    咏南中间件D7客户端演示 咏南中间件MORMOT(http.sys)支持D6.D7等老版本开发客户端.客户端使用TClientDataSet内存表控件,数据序列使用TynSerial类.

  2. 咏南中间件+开发框架支持最新的DELPHI XE10.1(BERLIN) UPDATE1

    咏南中间件+开发框架支持最新的DELPHI XE10.1(BERLIN) UPDATE1 购买提供:中间件源码,价格十分优惠!有意者请向本人索取演示程序! 附带福利(赠送): CS开发框架源码BS开发 ...

  3. delphi 10.1 berlin最新的开发框架:咏南中间件+咏南开发框架,购买后提供全部的源码

    咏南中间件+咏南开发框架支持最新的delphi 10.1(berlin),老用户提供免费升级. 购买提供:中间件源码 附带福利(赠送): CS开发框架源码BS开发框架源码移动APP源码中间件集群源码二 ...

  4. 专门为ADO二层升三层的咏南中间件(特种用途)

    专门为ADO二层升三层的咏南中间件(特种用途) 演示下载:链接: https://pan.baidu.com/s/1bulGBIZ6A1nkeErxIrGsGA 密码: 22dk 解压后运行ynmai ...

  5. 咏南中间件支持JWT TOKEN

    咏南中间件支持JWT TOKEN

  6. 咏南中间件新增MORMOT移动端演示

    咏南中间件新增MORMOT移动端演示 基于FMX,支持安卓.IOS移动端. 1)使用INDY 的HTTP控件进行查询: procedure TForm1.查询1Click(Sender: TObjec ...

  7. 咏南中间件支持DELPHI6及以上版本开发的客户端

    咏南中间件支持DELPHI6及以上版本开发的客户端 下面是测试用DELPHI7开发的客户端,调用DELPHI10.3.1开发的中间件,完全兼容. 这样,有利于维护原来用D7开发的老程序. 如上所述,只 ...

  8. 咏南中间件开始支持redis client接口调用

    咏南中间件开始支持redis client接口调用 咏南中间件封装了redis client接口,可以支持REDIS了. 如下图,将数据集写入REDIS缓存,和从REDIS缓存获取数据: proced ...

  9. 咏南中间件支持TMS WEB CORE客户端

    咏南中间件支持TMS WEB CORE客户端 TMS WEB CORE是优秀的JS前端,搭配咏南中间件后端,可以进行快速的企业应用开发.

随机推荐

  1. matplotlib画图

    matplotlib画图 import numpy as np import matplotlib.pyplot as plt x1=[20,33,51,79,101,121,132,145,162, ...

  2. vue scoped 穿透_vue 修改内部组件样式问题

    何为scoped? 在vue文件中的style标签上,有一个特殊的属性:scoped.当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,也就是说,该样式只能适用于当前组 ...

  3. 【splunk】数据输入-文件目录 导入失败

    今天用splunk的“数据输入-文件目录”自动监控文件并索引,结果失败了,完全没有出现我要的索引. 解决: 删除文件监控 改为一次性索引 再重新添加连续监控 原因: 尚不明确 https://answ ...

  4. bzoj 1064 noi2008 假面舞会题解

    莫名其妙的变成了我们的noip互测题... 其实这题思想还是比较简单的,只是分类不好分而已 其实就是一个dfs的事 首先,非常明显,原题目中的所有关系可以抽象成一个图(这是...显而易见的吧...) ...

  5. python 全栈开发,Day109(客户管理之动态"二级"菜单)

    昨日内容回顾 1. 权限有几张表? 2. 简述权限流程? 3. 为什么要把权限放入session? 4. 静态文件和模块文件 5. 相关技术点 - orm查询 - 去空 - 去重 - 中间件 - in ...

  6. python 全栈开发,Day64(视图,触发器,函数,存储过程,事务)

    昨日内容回顾 pymysql:属于python的一个模块 pip3 install pymysql conn = pymysql.connect(...,charset = 'uft8') 创建游标 ...

  7. python 全栈开发,Day28(复习,os模块,导入模块import和from)

    一.复习 collections 增加了一些扩展数据类型 :namedtuple orderdict defaltdict队列和栈time 时间 三种格式 : 时间戳 结构化 字符串random 随机 ...

  8. %SystemRoot%

    %SystemRoot%即C:\windows

  9. 《剑指offer》-链表的第一个公共节点

    题目描述 输入两个链表,找出它们的第一个公共结点. 这题目是指针相关的题目.初步要判断出来,有公共节点的两个指针,应当是链表后半部分相同.这样的话,当遇到第一个相同节点(不是node的val相同,而是 ...

  10. token登录验证机制图解