Datasnap请求在发布客户端模块上失败

时间:2019-01-11 18:50:30

标签: delphi datasnap delphi-10.2-tokyo

我具有以下结构:

类中的用于加载一些数据的函数:

function TClasseDatasnap.BuscarEmpresas(var Dataset: TFDJSONDataSets): Boolean;
begin
  Try
    Try
      F_ClientModule := TF_ClientModule.Create(nil);
      Dataset := F_ClientModule.ServerMethods1Client.GetDadosEmpresa(0);
      Result := True;
    Except
      On E:Exception do
      Begin
        Result := False;
        TModelTratamentoErro.GetInstance.TratarErro(nil,E);
      End;
    End;
  Finally
    FreeAndNil(F_ClientModule);
  End;
end;

在我的表单中,我调用传递变量 DadosEmpresa 作为参数的函数:

procedure TF_Login.BuscarEmpresas;
var
  DadosEmpresa: TFDJSONDataSets;
begin
  { F2.4.1 }
  if TClasseDatasnap.GetInstance.BuscarEmpresas(DadosEmpresa) then
  Begin
    Mem_Empresas.Close;
    Mem_Empresas.AppendData(TFDJSONDataSetsReader.GetListValue(DadosEmpresa, 0));
    Mem_Empresas.Open;
  End;
end;

从datasnap获取数据的过程非常完美,但是当程序到达该行时:

Mem_Empresas.AppendData(TFDJSONDataSetsReader.GetListValue(DadosEmpresa, 0));

出现以下错误:

Project XXX.exe raised exception class EArgumentOutOfRangeException with message 'Argument out of range'.

如果我在FreeAndNil(F_ClientModule);行中注释,该程序将正常运行。

我知道F_ClientModule负责向datasnap服务器发出请求,但是我已经将接收到的数据传递给了变量,我做错了吗?

0 个答案:

没有答案