咏南中间件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;

  

最新文章

  1. Redhat Server 5.7 安装配置PHP
  2. Thrift的TCompactProtocol紧凑型二进制协议分析
  3. 【前端】我的Gulp配置
  4. iOS10通知框架UserNotification理解与应用
  5. ORA-03113解决方法
  6. 在HTML文件的表单中添加{%csrf_token%}便可以解决问题
  7. dubbox使用
  8. vsftpd.conf配置详解
  9. GDB调试GCC(jRate)
  10. cocos2d-js 入门一 ([isNaN()和isFinite(),字符和Number之间的转化)
  11. Effective C++:条款35:考虑virtual函数以外的其它选择
  12. [Android学习笔记]LayoutInflater的使用
  13. SQL Server 常用操作XML
  14. crontabs linux定时任务功能安装
  15. python点点滴滴
  16. Android软键盘的隐藏显示、事件监听的代码
  17. Firewalld的结构
  18. POJ 3579 Median 【二分答案】
  19. 【倍增】Tak and Hotels II @ABC044&ARC060/upcexam6463
  20. Rancher2.0中使用外置NFS存储部署Nginx实验

热门文章

  1. JavaScript中unicode编码与String互转(三种方法)
  2. vue系列之vue-resource
  3. navicat连接sqlserver数据库提示:未发现数据源名称并且未指定默认驱动程序
  4. poj2528贴海报,,
  5. 性能测试八:jmeter进阶之beanshell
  6. Python 检测系统时间,k8s版本,redis集群,etcd,mysql,ceph,kafka
  7. 安装httpd过程,将网站部署到httpd过程
  8. async/await套路编程
  9. 白化(Whitening): PCA 与 ZCA (转)
  10. hihocoder 1343 : Stable Members【拓扑排序】