码迷,mamicode.com
首页 > 其他好文 > 详细

DataSnap 多层 返回数据集 分析

时间:2015-02-09 12:36:43      阅读:1493      评论:0      收藏:0      [点我收藏+]

标签:

采用服务器返回数据,一种是返回字符串数据例如JSON,跨平台跨语言,任何语言调用都支持兼容,类似WEBService。

第二种是紧密结合c++builder语言,传输DataSet,可以是ClientDataSet,也可以是FDMemTable,或TDataSet,这类好处是DataSet本身包含了很多属性,记录集的状态Insert/Modify/Delete,在服务端可以调用

不同的方法进行数据处理,客户端也只需要把dataset对象赋值就展示到dbgrid里了。

一、跨平台纯字符串

对返回的数据增删改查。对应的方法就是Add/Delete/Update/Query,客户端调用此方法就OK了。

Serever

String GetPersonAll()

{

return "";字符串形式的JSON或XML格式

}

Client

String DataSTR=srv->GetPersonAll();

对字符串解析JSON或XML,以DataSet展示就可以。

 

 二、DataSet

http://blog.csdn.net/ddqqyy/article/details/6982164 利用TDBXDataSetReader实例化,传输的是TDBXReader

http://blog.csdn.net/ddqqyy/article/details/6174525 讲的是返回dataset ClientDataSet1.Delta,TDataSetProvider,TSqlServerMethod,还用到了OleVariant

#include <Data.DBXCDSReaders.hpp>

 static void __fastcall CopyReaderToClientDataSet(Data::Dbxcommon::TDBXReader* Reader, Datasnap::Dbclient::TClientDataSet* Dataset);
 static Datasnap::Dbclient::TClientDataSet* __fastcall ToClientDataSet(TComponent* AOwner, Data::Dbxcommon::TDBXReader* Reader, bool AOwnsInstance);

C++中这些返回指针,怎么释放一直没想清楚。

 

三、FireDAC 

TFDJSONDataSets
http://blogs.embarcadero.com/pawelglowacki/2014/06/04/40330/
http://blogs.embarcadero.com/fernandorizzato/index.php/2014/07/21/multi-tier-com-delphi-xe6-e-firedac-json-reflection/
http://www.cnblogs.com/hnxxcxg/p/4007876.html
http://www.cnblogs.com/hnxxcxg/p/4008789.html
http://www.kzx123.com/?p=105

 TFDJSONDataSets *dset;
 TFDJSONDataSetsReader * dsread;
 TFDJSONDataSetsWriter::ListAdd(dset, FDMemTable1);//FDQuery1

DataSnap 多层 返回数据集 分析

标签:

原文地址:http://www.cnblogs.com/cb168/p/4281155.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!