分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

DATASNAP数据序列之FIREDAC的TFDJSONDataSets

发布时间:2023-09-06 01:08责任编辑:沈小雨关键词:暂无标签

DATASNAP数据序列之FIREDAC的TFDJSONDataSets

DELPHI XE5开始增加了新的数据引擎——FIREDAC,它是跨平台的数据引擎,WINDOWS、LINUX、MAC、APP。。。。。。都可以使用。

随之DATASNAP也增加了新的远程方法返回数据类型——TFDJSONDataSets。

顾名思义TFDJSONDataSets是数据集列表,是多个数据集的集合,DATASNAP通过它一次可以返回多个查询结果数据集。

服务端代码:

function TServerMethods1.QuerySql2(const accountNo, sql: string): TFDJSONDataSets;
var
?d: TfrmDB;
begin
?Result := nil;
?if (accountNo = ‘‘) or (sql = ‘‘) then
???Exit;
?d := GetDBPool(accountNo).Lock;
?if not Assigned(d) then
???Exit;
?try
???try
?????SetTraceOn(d);
?????d.qryOpen.Close;
?????d.qryOpen.sql.Clear;
?????d.qryOpen.sql.Text := sql;
?????d.qryOpen.Open;
?????Result := TFDJSONDataSets.Create;
?????TFDJSONDataSetsWriter.ListAdd(Result, ‘1‘, d.qryOpen);
???except
?????on e: Exception do
?????begin
???????Result := nil;
???????Log.WriteLog(‘TServerMethods1.QuerySql2 ‘ + e.Message);
?????end;
???end;
?finally
???d.qryOpen.Close;
???GetDBPool(accountNo).Unlock(d);
???SetTraceOff(d);
?end;
end;

客户端代码:

首先引用 Data.FireDACJSONReflect

procedure TForm1.btnQuery2Click(Sender: TObject);
var
?LDataSets: TFDJSONDataSets;
?LDataSet: TFDDataSet;
begin
?DataSource1.DataSet := FDMemTable1;
?LDataSets := methods.QuerySql2(‘0‘, ‘select * from t1‘);
?LDataSet := TFDJSONDataSetsReader.GetListValueByName(LDataSets, ‘1‘);
?FDMemTable1.Close;
?FDMemTable1.Data := LDataSet;
end;

可以看到客户端是使用TFDMemTable内存表,而不是TCLIENTDATASET。

笔者已经多次提到过,FIREDAC引擎是使用TFDMemTable内存表来作为TCLIENTDATASET的替代。

TCLIENTDATASET的数据序列格式是OLEVARIANT,它是微软COM的数据格式。

现在DATASNAP正在去除对微软COM的过分依赖。

DATASNAP数据序列之FIREDAC的TFDJSONDataSets

原文地址:http://www.cnblogs.com/hnxxcxg/p/7468758.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved