论DATASNAP结合FIREDAC的使用方法

自DELPHI XE5开始引入FIREDAC数据引擎以来,FIREDAC就正式成为了官方的数据引擎。
一直到XE10.1 UPDATE1,据笔者观察,FIREDAC都是新版本开发当中的重中之重,其在DELPHI的地位自然是不言而喻。

DATASNAP结合FIREDAC,中间件远程方法支持的数据序列格式可谓是丰富多彩。已经不仅仅是只支持OLEVARIANT格式序列。
下面且听本人一一道来。

1)OLEVARIANT
仍然得到继续支持,这使得成千上万的老程序继续得以绽放异彩。
使用的方法大致如下:
中间件:fdconnection--fdquery--datasetprovider
客户端:sqlconnection--clientdataset

2)TStream(流)
首先,DATASNAP的远程方法支持返回TStream(流),MIDAS时代是不支持的。
说句题外话:TStream可真是好东西,不论数据集、文件。。。。。。等,统统都可以用它来传输。
FIREDAC所有的数据集控件全部提供savetostream(),loadfromstream(),数据集的数据保存成流的时候还可以指定序列的格式,真是太方便了。
firedac支持的数据序列格式有:TFDStorageFormat = (sfAuto, sfXML, sfBinary, sfJSON);
诸位都看出来了,XML、二进制和JSON是统统都支持。大家完全可以根据自己的需要选择合适的序列格式。
不过说到底,当然还是二进制格式序列后体积最小,传输效率也是最好的。

3)TFDJSONDataSets和TFDJSONDeltas
也是只有DATASNAP才支持的远程方法返回类型,当然也是FIREDAC才有的,MIDAS是不支持的。
使用的方法大致如下:
中间件返回数据给客户端,使用TFDJSONDataSets返回。
客户端向中间件提交修改的数据,使用TFDJSONDeltas。

看到这,有人不免要问具体怎么实现的?为什么不把演示代码列出来?
笔者在此郑重地回复:欲知详情,请参看《咏南中间件》:):)

时间: 2024-08-26 14:01:35

论DATASNAP结合FIREDAC的使用方法的相关文章

DataSnap与FireDAC三层

相交资料: http://blog.csdn.net/shuaihj/article/details/6129131http://www.cnblogs.com/hnxxcxg/p/4007876.htmlhttp://www.cnblogs.com/hnxxcxg/p/4008789.htmlhttp://www.dfwlt.com/forum.php?mod=viewthread&tid=729 (生成Unit2) PS: 右键点击TSQLConnection选择“Generate Data

调用DATASNAP+FIREDAC的远程方法有时会执行二次SQL或存储过程的BUG

1)查询会重复执行的情形:Result := DATASETPROVIDER.Data会触发它关联的DATASET执行一次查询 fdquery.Close; fdquery.sql.Clear; fdquery.sql.Text := sql; // d.qryOpen.Open; // 此行代码必须被注释掉,否则SQL会被二次执行 Result := DATASETPROVIDER.Data; // 此行又会触发一次fdquery进行查询 2)存储过程会重复执行的情形:Result := DA

Delphi XE8中开发DataSnap程序常见问题和解决方法 (-)启动创建好的DBExpress工程时候报错了!

当我们成功创建了使用DBExpress的DataSnap的服务器和客户端程序后,我们关闭了当前工程,当我们再次打开时候,有可能会出现这样的问题: 问题原因:这个问题是因为当前工程组默认启动的是客户端工程,客户端程序在启动时候,进行可视化设计,需要连接服务器,但是我们的服务器并没有启动! 解决方法: 1,忽略当前错误,进入工程,把默认工程调整为服务器端的工程.我建议这样做,这样我们可以随意启动或停止任意一个工程. 2,首先启动服务器程序,等服务器程序启动完毕后,再打开工程.

Delphi 使用 Datasnap 的几种三层应用技术总结

Delphi 使用 Datasnap 进行三层应用开发,积累了几种技术,总结如下: 1.(推荐!)在 Datasnap 服务端 使用 TDatasetProvider,客户端 使用   TDSProviderConnection 1)采用 Datasnap Server ,可以使用TCP/IP.Http 通信.TDatasetProvider 能够提供 "元数据与业务数据". 推荐:采用(FireDac技术) TFDConnection 连接数据库,通过 TFDQuery/TFDTab

Delphi操作WebService(两篇,疯狂delphi)

DataSnap与FireDAC三层 DelphiXE7中创建WebService(服务端+客户端) http://www.cnblogs.com/FKdelphi/category/709637.html

DATASNAP为支持FIREDAC而增加的远程方法的数据类型TFDJSONDataSets

前面的博客提到用FIREDAC全面替代COM那一套东西:DATAPROVIDER,OLEVARIANT,CLIENTDATASET,DBEXPRESS... 显然,DATASNAP的远程方法必须增加对FIREDAC数据集直接序列的参数类型. 从XE5的UPDATE2开始增加一个新的单元文件:Data.FireDACJSONReflect TFDJSONDataSets是一个数据集列表对象,顾名思义可以返回一个或多个数据集对象,不论是单表或者主从表数据都可传递. 服务端演示代码: function

DATASNAP数据序列之FIREDAC的TFDJSONDataSets

DELPHI XE5开始增加了新的数据引擎——FIREDAC,它是跨平台的数据引擎,WINDOWS.LINUX.MAC.APP......都可以使用. 随之DATASNAP也增加了新的远程方法返回数据类型——TFDJSONDataSets. 顾名思义TFDJSONDataSets是数据集列表,是多个数据集的集合,DATASNAP通过它一次可以返回多个查询结果数据集. 服务端代码: function TServerMethods1.QuerySql2(const accountNo, sql: s

datasnap 授权验证DSAuthenticationManager方法应用

服务端 1.服务端只需要增加DSAuthenticationManager1并且把dshttpservice的AuthenticationManager属性设置为DSAuthenticationManager1即可. 2.在DSAuthenticationManager1的OnUserAuthenticate方法中进行用户名密码验证操作具体示例代码如下: procedure TfrmServerContainer.DSAuthenticationManager1UserAuthenticate(

datasnap远程方法支持自定义对象传参

有同仁需要远程方法传输自定义的数据类型,他以为要自己写代码会很复杂,其实DATASNAP早就为我们想到了. datasnap的数据序列和还原真是无与伦比的强大,其远程方法支持自定义对象传参,DATASNAP会自动使用JSON序列和还原自定义的对象. 1)自定义一个对象 type TMyInfo = class(TObject) public AccountNo: string; SQL: string; Params: string; RecsMax: Integer; end; 2)服务端远程