DataSnap Server抱怨服务器方法不存在... Delphi 2010 DataSnap

时间:2012-08-06 20:15:30

标签: delphi delphi-2010 datasnap

我有一个DataSnap Server,其服务器方法如下:

function TServerMethods1.selectFalzUser(Usuario: string) : TDataSet;

现在,在使用TSQLServerMethod的DataSnap客户端上,我成功连接到设计模式的服务器,拉出服务器的方法列表...选择'selectFalzUser'...我可以成功地看到我的参数,Usuario都是INput,输出TDataset Param ...当试图设置我的SqlServerMethod Active ...时出现以下错误:

  

错误远程错误:TServerMethods1.selectFalzUserwhereUsuario方法   在服务器方法列表中找不到。

为什么Delphi会将'whereUsuario'字符串附加到方法名称?显然TServerMethods1.selectFalzUserwhereUsuario不存在。

此致

zaguerino。

1 个答案:

答案 0 :(得分:0)

如果没有看到更多代码,很难说为什么它没有正确报告方法名称。但是,听起来你并没有使用DataSnap。以下是我为几个项目成功完成的工作:

您必须在{$METHODINFO ON}类定义之前包含TServerMethods,在DataSnap服务器中的类定义之后包含{$METHODINFO OFF}。然后编译并运行DS服务器。

在客户端,添加TSQLConnection组件并设置其属性以连接到列表DS服务器。然后右键点击TSQLConnection并选择Generate DataSnap client classes。将其保存为ProxyMethods.pas之类的内容并将其包含在客户端项目中。然后,您可以访问ProxyMethods类来调用服务器中的任何已发布的TServerMethods

此外,返回TDataSet将无法使用我所描述的方法,因为TDataSet不是可编组的数据类型,但OleVariant是。返回TClientDataSet.Data后,我取得了很好的成功,然后在客户端,我可以直接为客户端Data分配TClientDataSet属性。