Delphi Xe DataSnap Rest + Flex 开发 基本探索3(取得后台 DataSet 数据集)

在看本文章前,请参考 基本探索1 中的部分内容

本文介绍如何取得 后台delphi 生成的Tdataset 数据集,该功能需要后台链接数据库

后台代码

声明
TSMTest = class(TDSServerModule)
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    dsp: TDataSetProvider;
    procedure DSServerModuleCreate(Sender: TObject);
  private
  
    { Private declarations }
  public
    { Public declarations } 
    function GetDataset:Tdataset; 
  end;
实现
function TSMTest.GetDataset: Tdataset;
begin
 ADOQuery1.Close;
 ADOQuery1.Open;
 result := ADOQuery1;
end;

本人用的ado组件,也可以用其他的数据库驱动 ,形式是一样的 只要返回Tdataset就可以了

(注意了,前台用delphi开发的话 直接返回Tdataset 中文字段是乱码,应该是不能直接返回Tdataset了,所以delphi的客户端建议直接使用datasetprovider 数据服务,当然也有其他办法,可以在网上在看看,有相关的文章 如何用Json 封装返回Tclientdataset)

前台效果

Delphi Xe DataSnap Rest + Flex 开发 基本探索3(取得后台 DataSet 数据集)_第1张图片

前台代码

protected function btndataset_clickHandler(event:MouseEvent):void
			{
				var read :	ReadDataFromServer  = new ReadDataFromServer;
				read.onLoadComplete = onDatasetLoad;
				read.Load('datasnap/rest/TSMTest/GetDataset');	
			}
			public function JsonDatasetToArr(JsonObj:Object):ArrayCollection{
			    var fieldname:String;
				var arrFields:Array = new Array();
				var arrGrid:Array = new Array();
				var arrC:ArrayCollection = new ArrayCollection(arrGrid);
				var fieldcount:int;
				var i:int;
				for( i=0;i0)
				{//有数据
				  var recCount:int= arrFields[0].length;
				 // var oneArr:Array = new Array();//临时存储
				  for(var j:int=0;j

注意 返回的dataset 是以Json格式封装的,不能直接绑定到Grid上面,需要解析出来 

本人 自己写了一个 解析函数

public function JsonDatasetToArr(JsonObj:Object):ArrayCollection
 上面代码里面有.大家可以参考 
  

你可能感兴趣的:(delphi,Xe,DataSnap,开发)