在datasnap servermethod中使用OUT参数时出错

时间:2016-05-20 13:23:00

标签: delphi datasnap delphi-10.1-berlin

我将Datasnap服务器迁移到XE 10.1 Berlin,现在当我调用带有OUT参数的服务器方法时,我在服务器上收到错误。

对象

  TBtwlControlePar=class
    xInDoc,
    xHandmatig,
    xStatus,
    xVerwacht,
    xAantal,
    xVerwerkt,
    xOnVerwerkt,
    xOnverwerktInDocument,
    xTotaalCustoms :Integer;
  end;

function TPWAdminMethods.DOC_BTWAH_Get2(pPeriode, pMaand, pSort,pSelop,pSelOntvangen,pSelToegewezen,pSelVerwerkt: integer; pSel: string; out pControlePar: TBTWLControlePar): TResult;

ServerMethod

tmpM := TPWAdminMethodsClient.Create (DMForm.DSConnection.DBXConnection, false);

客户端

  FreeAndNil( fControlePar );
  tmpResult := tmpM.DOC_VATLH_Get2(Jaar,sort,SelOp,SelOntvangen,SelToegewezen,SelVerwerkt,fSelection,fControlePar);          

当触发此方法时,服务器会在最后一行显示错误

procedure TDSMethod.Invoke(MethodInstance: TObject;
  MethodValues: TDSMethodValues);
var
  RContext: TRttiContext;
  RType: TRttiType;
  Params: TArrayOfTValue;
begin
  Params := MethodValues.GetValues;
  RType := RContext.GetType(MethodInstance.ClassType);
  MethodValues.ReturnValue := RType.GetMethod(FMethodInfoHeader.NameFld.ToString).Invoke(MethodInstance, Params);
end;

VAN and OUT argument must match parameter type exactly

在不使用DBXJson的情况下,是否无法在Delphi Berling Datasnap中使用参数?

1 个答案:

答案 0 :(得分:1)

此错误消息和问题已作为RSP-14895记录在Embarcadero的质量门户中。这是在16月16日由其他人。那个人说" XE10没问题"。 今天(14月16日)我在这个问题上添加了另一个测试项目。我的测试项目是针对VAR参数的情况。我还提供了测试项目的截图。我的测试适用于XE6但在10.1柏林上失败。 在修复此问题之前,我无法使用DataSnap。 请将此问题投票。