论DELPHI三层的数据序列格式的变化
论DELPHI三层的数据序列格式的变化
要窥三层的数据序列格式,我们可以通过观察DELPHI官方的客户端内存表。
早先流行的是TClientDataSet,它的Data和Delta属性的数据类型都是:OleVariant。
OleVariant其实是微软公司为COM和COM+战略定义的统一的数据序列格式。
早年DELPHI的三层架构就是建立在COM的基础之上的,数据序列自然也就使用OleVariant。
随着软件COM战略的失败,微软公司已经放弃COM战略,现在改为.NET战略了。
DELPHI随之也改变了三层的架构,推出了全新的三层框架:DATASNAP。
全新的FireDac数据引擎,这是一个跨平台的引擎。
相应的客户端内存表,现在主推FDMemTable,它的Data和Delta属性的数据类型都是:IFDDataSetReference。
property Data: IFDDataSetReference read GetData write SetData;
property Delta: IFDDataSetReference read GetDelta;
IFDDataSetReference居然是一个接口类型,这是许多人第一次见所发出的感叹!
IFDDataSetReference = interface (IUnknown)
['{3E9B315B-F456-4175-A864-B2573C4A2400}']
function GetDataView: TFDDatSView;
property DataView: TFDDatSView read GetDataView;
end;
然而它确实是个接口。没错的。那么,FDMemTable序列的数据类型倒底是什么?这是许多人的疑惑。
答案,我们可以通过看DELPHI官方的DEMO来一一揭晓。
TFDJSONDataSets类型:DATASNAP远程方法支持返回的数据类型,可用于查询返回N个数据集的数据。然而,它只支持WINDOWS服务器。
TFDJSONDeltas类型:DATASNAP远程方法支持的输入参数的数据类型,可用于客户端提交N个数据集的修改后的数据。然而,它只支持WINDOWS服务器。
现在,DELPHI处在物联网AI时代,跨平台是趋势。那么什么是DATASNAP跨平台的数据序列类型呢?
答案是:TStream。没有之一。
TClientDataSet 和OleVariant已经不能适应这个时代,它们已经随风远去,将逐渐从人们的眼线中消逝!
论DELPHI三层的数据序列格式的变化的更多相关文章
- DATASNAP数据序列之FIREDAC的TFDJSONDataSets
DATASNAP数据序列之FIREDAC的TFDJSONDataSets DELPHI XE5开始增加了新的数据引擎——FIREDAC,它是跨平台的数据引擎,WINDOWS.LINUX.MAC.APP ...
- IM通信协议逆向分析、Wireshark自定义数据包格式解析插件编程学习
相关学习资料 http://hi.baidu.com/hucyuansheng/item/bf2bfddefd1ee70ad68ed04d http://en.wikipedia.org/wiki/I ...
- Delphi三层网络架构代码实现
Delphi三层网络架构代码实现 1 .三层网络的概念 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为: 表现层(UI).业务逻辑层(BLL).数据访 ...
- 数据交换格式与SpringIOC底层实现
1.数据交换格式 1.1 有哪些数据交换格式 客户端与服务器常用数据交换格式xml.json.html 1.2 数据交换格式应用场景 1.2.1 移动端(安卓.iOS)通讯方式采用http协议+JSO ...
- Delphi三层开发小技巧:TClientDataSet的Delta妙用
Delphi三层开发小技巧:TClientDataSet的Delta妙用 转载 2014年10月13日 09:41:14 标签: 三层 / ClientDataSet 318 from :http:/ ...
- delphi 三层架构简单例子(经测试成功)
delphi 三层架构简单例子(经测试成功) 转载 2013年12月19日 09:48:57 1100 所谓三层: (1) 客户端 (2) 服务器端 (3) 数据库 在数据访问时,使得客户端必须通过服 ...
- 优秀的数据序列和还原类----TSimpleMsgPack
优秀的数据序列和还原类----TSimpleMsgPack TSimpleMsgPack是D10天地弦的作品. 优点:至简,就一个单元文件实现,不需要引用其他单元. 缺点:不是标准的MSGPACK实现 ...
- JSON --- 一种轻量级的数据交换格式
目录 1. 语法 2. 解析与序列化 JSON.stringify( jsData[, filter, indent] ) JSON.parse( jsonData[, reduction]) JSO ...
- H264的RTP负载打包的数据包格式,分组,分片
H264的RTP负载打包的数据包格式,分组,分片 1. RTP数据包格式 RTP报文头格式(见RFC3550 Page12): 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 ...
随机推荐
- 005_系统运维之SLA与SLO的关系
服务水平协议(简称:SLA,全称:service level agreement)是在一定开销下为保障服务的性能和可靠性,服务提供商与用户间定义的一种双方认可的协定.通常这个开销是驱动提供服务质量的主 ...
- TypeError: Object of type 'int64' is not JSON serializable
错误类型:TypeError: Object of type 'int64' is not JSON serializable 错误场景:对Numpy和Pandas结果进行json.dumps报错 错 ...
- hadoop-2.7.2-HA安装笔记
配置方案如图 NN DN ZK ZKFC JN RM NM(任务管理器) HMaster Region Server Node1 1 1 1 1 1 Node2 1 1 1 1 1 1 1 Nod ...
- Java中关于HashMap源码的研究
1.基础知识 1.数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大.但数组的二分查找时间复杂度小,为O(1):数组的特点是:寻址容易,插入和删除困难. 2.链表 链表存储区间离散,占用内存比 ...
- mkfs
mkfs 命令 linux格式化磁盘命令 指令:mkfs 使用权限 : 超级使用者 使用方式 : mkfs [-V] [-t fstype] [fs-options] filesys [blocks ...
- CSU 1948: 超级管理员(普通费用流&&zkw费用流)
Description 长者对小明施加了膜法,使得小明每天起床就像马丁的早晨一样. 今天小明早上醒来发现自己成了一位仓管员.仓库可以被描述为一个n × m的网格,在每个网格上有几个箱子(可能没有).为 ...
- metasploit利用漏洞渗透攻击靶机
1.网络测试环境构建 首先需要先配置好一个渗透测试用的网络环境,包括如图1所示的运行Kali Linux系统的计算机,如图2所示的老师给的Windows Server 2000系统的计算机.这两台计算 ...
- JS文件上传神器bootstrap fileinput详解
Bootstrap FileInput插件功能如此强大,完全没有理由不去使用,但是国内很少能找到本插件完整的使用方法,于是本人去其官网翻译了一下英文说明文档放在这里供英文不好的同学勉强查阅.另外附上一 ...
- 【LOJ】#2122. 「HEOI2015」小 Z 的房间
题解 又是一道取模不给质数的毒瘤矩阵树题 不会写分数类--然后发现了网上过于神仙的题解类似与辗转相除的这样把某一个位置消成0 orz 代码 #include <bits/stdc++.h> ...
- 关于 win10 创建WiFi热点 问题(无法启动承载网络 , 我们无法设置移动热点,因为你的电脑未建立以太网,wifi或手机网络数据连接 )
电脑创建WiFi,一般三种办法: 1. WiFi共享软件:猎豹wifi.wifi共享精灵.wifi共享大师..... 2. 命令提示符 netsh wlan set hostednetwork mod ...