Delphi Tokyo 10.2 - 710 二进制存储格式无效
Delphi Tokyo 10.2 - 710 invalid binary storage format
我正在使用 REST/Jason 处理 firemonkey,但是,当我通过 DataSnap Client 类 连接到我的方法服务器以获取查询的 return 时,以下行抛出一个例外:
Result := TFDJSONDataSets(FUnMarshal.UnMarshal(FGetAlunoAutenticacaoCommand.Parameters[3].Value.GetJSONValue(True)));
重要:
不用说,这个问题只出现在iOS模拟器中。
当我使用 ANDROID 或 WIN32 时,问题没有发生。
有人有什么建议吗?
我在 iOS 上遇到了同样的错误。
经过一些调查,我在 Embarcadero 的源代码中找到了导致此错误的错误。
单元 Data.FireDACJSONReflect
具有功能 MemTableFromString(...)
。在这个函数中,行 (435) LMemoryStream.Seek(Longint(0), soFromBeginning);
意味着将 LMemoryStream.Position
设置为 0
。除了 iOS(我已经在 Win32/64 和 Android 上测试过),它在所有平台上都这样做。在 iOS 上它什么都不做。 (Seek
函数调用的实际参数变为0
和soCurrent
)。
刚刚在单元Data.FireDACJSONReflect
中更改了这一行 (435)
LMemoryStream.Seek(Longint(0), soFromBeginning);
正确的
LMemoryStream.Seek(0, TSeekOrigin.soBeginning);
(您需要将更正后的单位保存在某处,将其添加到您的项目中,并在源的 uses
子句中用新单位替换旧单位)
我正在使用 REST/Jason 处理 firemonkey,但是,当我通过 DataSnap Client 类 连接到我的方法服务器以获取查询的 return 时,以下行抛出一个例外:
Result := TFDJSONDataSets(FUnMarshal.UnMarshal(FGetAlunoAutenticacaoCommand.Parameters[3].Value.GetJSONValue(True)));
重要:
不用说,这个问题只出现在iOS模拟器中。
当我使用 ANDROID 或 WIN32 时,问题没有发生。
有人有什么建议吗?
我在 iOS 上遇到了同样的错误。 经过一些调查,我在 Embarcadero 的源代码中找到了导致此错误的错误。
单元 Data.FireDACJSONReflect
具有功能 MemTableFromString(...)
。在这个函数中,行 (435) LMemoryStream.Seek(Longint(0), soFromBeginning);
意味着将 LMemoryStream.Position
设置为 0
。除了 iOS(我已经在 Win32/64 和 Android 上测试过),它在所有平台上都这样做。在 iOS 上它什么都不做。 (Seek
函数调用的实际参数变为0
和soCurrent
)。
刚刚在单元Data.FireDACJSONReflect
中更改了这一行 (435)
LMemoryStream.Seek(Longint(0), soFromBeginning);
正确的
LMemoryStream.Seek(0, TSeekOrigin.soBeginning);
(您需要将更正后的单位保存在某处,将其添加到您的项目中,并在源的 uses
子句中用新单位替换旧单位)