Сбой запроса Datasnap при выпуске клиентского модуля - PullRequest
0 голосов
/ 11 января 2019

У меня есть следующая структура:

Функция в классе для загрузки некоторых данных:

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, но я уже передал полученные данные в переменную, я что-то не так делаю?

...