群里有位同仁提出他有一个DATASNAP远程方法超过了32个参数,然后DELPHI编译通不过,提示方法参数不能超过32个,问怎么办?于是群内同仁纷纷出主意,我说用OLEVARINAT数组,有人说用RECORD,我又说别说用RECORD,连自定义的类也是可以的.于是我想到了实现,用SUPEROBJECT序列RECORD或者CLASS为JSON的字符串挺方便的,中间件收到客户端传来的JSON字符串再还原为RECORD或者CLASS.   unit Unit1;   interface   uses…
论DATASNAP远程方法支持自定义对象作参数 DATASNAP远程方法已经可以支持自定义对象作参数,这是非常方便的功能. 1)自定义对象 type TMyInfo = class(TObject) public AccountNo: string; SQL: string; Params: string; end; 2)远程方法定义 function TServerMethods1.QuerySql4(const myInfo: TMyInfo): TFDJSONDataSets;var d:…
DATASNAP远程方法返回TSTREAM正解 DATASNAP远程方法返回TSTREAM,如果数据大小超过32K是会报错的.许多DELPHIER栽在这个上头,甚至开始怀疑TSTREAM返回数据的可行性. 因为DATASNAP远程方法返回TSTREAM,数据包大小有最大32K限制. 怎么解决?客户端要做并包处理. function CopyStream(const AStream: TStream): TMemoryStream; const LBufSize = $F000; var LBuf…
DATASNAP远程方法返回TSTREAM正解 DATASNAP远程方法返回TSTREAM,如果数据大小超过32K是会报错的.许多DELPHIER栽在这个上头,甚至开始怀疑TSTREAM返回数据的可行性. 因为DATASNAP远程方法返回TSTREAM,数据包大小有最大32K限制. 怎么解决?客户端要做并包处理. function CopyStream(const AStream: TStream): TMemoryStream;const LBufSize = $F000;var LBuffe…
有同仁需要远程方法传输自定义的数据类型,他以为要自己写代码会很复杂,其实DATASNAP早就为我们想到了. datasnap的数据序列和还原真是无与伦比的强大,其远程方法支持自定义对象传参,DATASNAP会自动使用JSON序列和还原自定义的对象. 1)自定义一个对象 type TMyInfo = class(TObject) public AccountNo: string; SQL: string; Params: string; RecsMax: Integer; end; 2)服务端远程…
本文翻译自http://developer.android.com/intl/zh-cn/tools/building/multidex.html#about.主要介绍当我们Android App中函数超过65536时构建失败的原因及解决办法! -------------------------分割线-------------------------------------------------- 随着android platform的持续增长,android apps的大小也在增长.当你的应…
Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法   同事遇到一个很囧的问题,java调,netwebservice的时候,调用无参数方法成功,调用有参数的方法每次我这边的webservice日志都记录参数为空,而我自己.Net程序调用完全没有问题,后面查资料得到: 为每个方法加上: ? [SoapRpcMethod(Use=SoapBindingUse.Literal,Action= "http://tempuri.org/MethodName&…
前面的博客提到用FIREDAC全面替代COM那一套东西:DATAPROVIDER,OLEVARIANT,CLIENTDATASET,DBEXPRESS... 显然,DATASNAP的远程方法必须增加对FIREDAC数据集直接序列的参数类型. 从XE5的UPDATE2开始增加一个新的单元文件:Data.FireDACJSONReflect TFDJSONDataSets是一个数据集列表对象,顾名思义可以返回一个或多个数据集对象,不论是单表或者主从表数据都可传递. 服务端演示代码: function…
idhttp.get方式调用,这种比较简单,大家都会.post方式网上却没有任何成功的代码,本人也是摸索了一个上午才搞定. 分享给大家. (1)post方式调用的远程方法,方法名必须加“update”前缀,不加行不?你试下啦. function TServerMethods1.updateecho(const value: String): String;begin Result := value;end; (2)客户端调用,参数必须是JSON格式的字符串. 客户端POST方式调用时,远程方法名…
idhttp.get方式调用,这种比较简单,大家都会.post方式网上却没有任何成功的代码,本人也是摸索了一个上午才搞定. 分享给大家. (1)post方式调用的远程方法,方法名必须加“update”前缀,不加行不?你试下啦. function TServerMethods1.updateecho(const value: String): String;beginResult := value;end; (2)客户端调用,参数必须是JSON格式的字符串. 客户端POST方式调用时,远程方法名必…