查了下ODAC的帮助,SAVETOXML也支持向STREAM保存数据, 但是使用TROBINMEMORYSTREAM后,这个东西是根据查询动作创建的,作为结果集输出,在GETDATASET中能否释放呐(意思是真正的业务数据能输出吗)? 还是要在REMOTEDATAMODULE中申请一个全局的TROBINMEMORYSTREAM,每个RDM实例创建时生成一个STREAM,销毁时释放掉.用户端的查询动作每次都清一下这个STREAM,把新的数据写进去.这样碎片比较多啊... 我的代码是这样: function TBSDService.GetDataSet(const SParam: BSDParams): Binary; var rs:TROBinaryMemoryStream; begin rs:=TROBinaryMemoryStream.Create; with orqry_GetDataset do begin Close; SQL.Clear; SQL.Add(GetSqlCMD(SParam.Func_ID)); open; end; orqry_getdataset.SaveToXML(rs); result:=rs; //这里应该 rs.free;吗? end; 应该怎样比较好呐?