10.3 Rio中的Datasnap与以前的版本不兼容

时间:2019-04-08 23:50:32

标签: delphi datasnap delphi-10.2-tokyo delphi-10.3-rio

我们在使用Datasnap RESTfull时遇到问题,它似乎在10.3 Rio和10.2 Tokyo(以及下面的所有方面)之间不兼容Datasnap RESTfull函数的实现。

问题:

我们有一台服务器,该服务器目前正在运行10.2版,正在为许多用户提供服务。如果我们用Delphi 10.3 Rio编译的服务器更新服务器,则当前的10.2客户端(Win,MacOS,iOS,Android)将收到以下错误消息:内部:在TJSONString类型中找不到字段FValue。

相反,当我们尝试使用在Amazon AWS上运行的当前服务器(10.2)通过Delphi 10.3 Rio编译的客户端时,收到以下错误消息:内部:在TJSONString类型中找不到字段FStrBuffer。

拥有操作系统的唯一方法是将10.3客户端与10.3服务器一起使用。但是,当前有很多用户,因此我们无法更改服务器部分,并希望同时更新所有客户端(台式机和移动客户端)。

服务器上的代码:

function TServerMethods1.GetMembers: TFDJSONDataSets;
begin      
  sCurrentDBName := aDBName;   
  FDQueryMEMBERS.Close;   
  Result := TFDJSONDataSets.Create;   
  TFDJSONDataSetsWriter.ListAdd(Result, StrMEMBERS, FDQueryMembers);     
end;

客户端上的代码:

procedure TMemberServer.GetMembers;
var
  aDataSetLists: TFDJSONDataSets;
begin    
  aDataSetLists := ServerMethods.GetMembers(sDBName);      
  FDMemTableMembers.Active := false;
  FDMemTableMembers.AppendData(TFDJSONDataSetsReader.GetListValue(aDataSetLists, 0));    
end;

调查:

System.JSON的10.3版本中,实现了FValue,但没有实现FStrBuffer

System.JSON的10.2版本中,实现了FStrBuffer,但没有实现FValue

问题:

如何使当前的10.2用户保持工作状态,并能够使用10.3 Rio更新服务器?

是否有另一种方法来实现此功能,或者有解决方法?

0 个答案:

没有答案