zoukankan      html  css  js  c++  java
  • 论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已经不能适应这个时代,它们已经随风远去,将逐渐从人们的眼线中消逝!

  • 相关阅读:
    pandas基本操作
    MySQL数据库(五)使用pymysql对数据库进行增删改查
    MySQL数据库(四)多表查询
    MySQL数据库(三)索引总结
    MySQL数据库(二)-数据库的增删改查
    MySQL数据库(一)
    Linux 解压/压缩xxx.zip格式(unZip Zip的安装和使用)
    关系型数据库和非关系型数据库的对比
    进程、线程、协程的区别
    python迭代器与生成器详解
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/10135205.html
Copyright © 2011-2022 走看看