采用服务器返回数据,一种是返回字符串数据例如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
TFDJSONDataSetshttp://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.htmlhttp://www.cnblogs.com/hnxxcxg/p/4008789.htmlhttp://www.kzx123.com/?p=105 TFDJSONDataSets *dset; TFDJSONDataSetsReader * dsread; TFDJSONDataSetsWriter::ListAdd(dset, FDMemTable1);//FDQuery1