0

我将 Datasnap 服务器迁移到 XE 10.1 Berlin,现在当我使用 OUT 参数调用 servermethod 时,服务器上出现错误。

目的

  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;

服务器方法

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 和 OUT 参数必须与参数类型完全匹配

Delphi Berling Datasnap中不使用DBXJson就不能用out参数吗?

4

1 回答 1

1

此错误消息和问题已作为 RSP-14895 记录在 Embarcadero 的质量门户上。这是其他人在 16May16 上发布的。那个人说“XE10没问题”。今天(14Jun16)我在这个问题上添加了另一个测试项目。我的测试项目是针对 VAR 参数的情况。我还提供了正在运行的测试项目的屏幕截图。我的测试在 XE6 上工作,但在 10.1 Berlin 上失败。在解决此问题之前,我无法使用 DataSnap。请投票赞成这个问题。

于 2016-06-14T12:20:11.110 回答