我们在使用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更新服务器?
是否有另一种方法来实现此功能,或者有解决方法?