[英]DataSnap Server complaining about Server Method not existing …Delphi 2010 DataSnap
我有一个具有以下Server方法的DataSnap Server:
function TServerMethods1.selectFalzUser(Usuario: string) : TDataSet;
现在,在使用TSQLServerMethod的DataSnap Client上,我成功地在设计模式下连接到服务器,提取服务器的方法列表...选择'selectFalzUser'...,然后我可以成功地看到我的参数,既是Usuario作为INput,又是输出TDataset参数...尝试将我的SqlServerMethod设置为Active时...出现以下错误:
错误远程错误:在服务器方法列表中找不到TServerMethods1.selectFalzUserwhereUsuario方法。
为什么Delphi将'whereUsuario'字符串附加到方法名称上? 显然,TServerMethods1.selectFalzUserwhereUsuario不存在。
问候
扎格里诺。
没有看到更多代码,很难说为什么它没有正确报告方法名称。 但是,听起来您使用DataSnap并不正确。 这是我为多个项目成功完成的工作:
在DataSnap服务器中,必须在TServerMethods
类定义之前包括{$METHODINFO ON}
,在类定义之后包括{$METHODINFO OFF}
。 然后编译并运行您的DS服务器。
在客户端,添加一个TSQLConnection
组件并设置其属性以连接到列表DS服务器。 然后右键单击TSQLConnection
然后选择“ Generate DataSnap client classes
。 将其另存为ProxyMethods.pas
类的ProxyMethods.pas
并将其包含在客户端项目中。 然后,您可以访问ProxyMethods
类以调用服务器中任何已发布的TServerMethods
。
另外,返回TDataSet
不适用于我描述的方法,因为TDataSet
不是可编组的数据类型,但是OleVariant是。 我已经成功地返回了TClientDataSet.Data
,然后在客户端可以直接将其分配给客户端TClientDataSet
的Data
属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.