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

  • 相关阅读:
    mongodb数据类型
    Pycharm2020.1 破解教程
    酱茄主题(资讯/社区WordPress主题)正式发布
    WordPress社区商城小程序“酱茄pro小程序”V1.7.8发布
    SpringBoot 的@Value注解真是太强了,谁用谁说爽!
    python3_String复习
    Core Data的简单实用
    git submodule
    区间修改主席树
    快速数论变换ntt
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/10135205.html
Copyright © 2011-2022 走看看