咏南中间件JSON序列类
咏南中间件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序列类的更多相关文章
- 咏南中间件D7客户端演示
咏南中间件D7客户端演示 咏南中间件MORMOT(http.sys)支持D6.D7等老版本开发客户端.客户端使用TClientDataSet内存表控件,数据序列使用TynSerial类.
- 咏南中间件+开发框架支持最新的DELPHI XE10.1(BERLIN) UPDATE1
咏南中间件+开发框架支持最新的DELPHI XE10.1(BERLIN) UPDATE1 购买提供:中间件源码,价格十分优惠!有意者请向本人索取演示程序! 附带福利(赠送): CS开发框架源码BS开发 ...
- delphi 10.1 berlin最新的开发框架:咏南中间件+咏南开发框架,购买后提供全部的源码
咏南中间件+咏南开发框架支持最新的delphi 10.1(berlin),老用户提供免费升级. 购买提供:中间件源码 附带福利(赠送): CS开发框架源码BS开发框架源码移动APP源码中间件集群源码二 ...
- 专门为ADO二层升三层的咏南中间件(特种用途)
专门为ADO二层升三层的咏南中间件(特种用途) 演示下载:链接: https://pan.baidu.com/s/1bulGBIZ6A1nkeErxIrGsGA 密码: 22dk 解压后运行ynmai ...
- 咏南中间件支持JWT TOKEN
咏南中间件支持JWT TOKEN
- 咏南中间件新增MORMOT移动端演示
咏南中间件新增MORMOT移动端演示 基于FMX,支持安卓.IOS移动端. 1)使用INDY 的HTTP控件进行查询: procedure TForm1.查询1Click(Sender: TObjec ...
- 咏南中间件支持DELPHI6及以上版本开发的客户端
咏南中间件支持DELPHI6及以上版本开发的客户端 下面是测试用DELPHI7开发的客户端,调用DELPHI10.3.1开发的中间件,完全兼容. 这样,有利于维护原来用D7开发的老程序. 如上所述,只 ...
- 咏南中间件开始支持redis client接口调用
咏南中间件开始支持redis client接口调用 咏南中间件封装了redis client接口,可以支持REDIS了. 如下图,将数据集写入REDIS缓存,和从REDIS缓存获取数据: proced ...
- 咏南中间件支持TMS WEB CORE客户端
咏南中间件支持TMS WEB CORE客户端 TMS WEB CORE是优秀的JS前端,搭配咏南中间件后端,可以进行快速的企业应用开发.
随机推荐
- Expm 9_2 有向图的强连通分量问题
[问题描述] 给定一个有向图,设计一个算法,求解并输出该图的各个强连通分量. package org.xiu68.exp.exp9; import java.util.ArrayList; imp ...
- [学习笔记]Java作用域变量申明和C、C++的差异性
Java作用域 大多数程序设计语言都提供了“作用域”(Scope)的概念.对于在作用域里定义的名字,作用域同时决定了它的“可见性”以及“存在时间”.在C,C++和Java 里,作用域是由花括号的位置决 ...
- python 全栈开发,Day136(爬虫系列之第3章-Selenium模块)
一.Selenium 简介 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全 ...
- locust的安装与使用
Contents Locust这一款开源性能测试工具.然而,当前在网络上针对Locust的教程极少,不管是中文还是英文,基本都是介绍安装方法和简单的测试案例演示,但对于较复杂测试场景的案例演示却基本没 ...
- kettle的下载、安装和初步使用(windows平台下)(图文详解)
kettle的下载 Kettle可以在http://kettle.pentaho.org/网站下载 http://sourceforge.net/projects ...
- (第5篇)避免协作冲突--简单易接入的Zookeeper
摘要: 众所周知,分布式的系统协作服务很难有让人满意的产品.这些协作服务产品很容易陷入一些诸如竞争选择条件或者死锁的陷阱中.那Zookeeper又是怎么解决这个问题的呢? 博主福利 给大家推荐一套ha ...
- 6-3 矩阵链成 uva 442
较为简单的栈题 思路比较好 一次ac 1.char word :word=A:直接 a[word]=xxxx,不用 a[‘word’]=xxxx #include<bits/stdc++.h& ...
- python小工具myqr生成动态二维码
python小工具myqr生成动态二维码 (一)安装 (二)使用 (一)安装 命令: pip install myqr 安装完成后,就可以在命令行中输入 myqr 查看下使用帮助: myqr --he ...
- LoRaWAN 1.1 网络协议规范 - 4 MAC帧格式 Part I
LoRaWAN 1.1 网络协议规范 LoRaWAN 1.1 版本封稿很久了也没有完整啃过一遍,最近边啃边翻译,趁着这个机会把它码下来. 如果觉得哪里有问题,欢迎留言斧正. 翻译不易,转载请申明出处和 ...
- 说出ArrayList,Vector, LinkedList的存储性能和特性
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插 ...