首页 > 解决方案 > 特殊情况:fly-away 的更新顺序错误

问题描述

如何追踪“特殊情况:错误的更新顺序飞走! ”错误的位置?

此错误消息定义Datasnap.DSIntf

const
  ...
  ERRCODE_FLYAWAY_WRONGORDER = 13;  { Special case: wrong order of updates for fly-away }
  ...
  DBERR_FLYAWAY_WRONGORDER  = ERRBASE_ALC + ERRCODE_FLYAWAY_WRONGORDER;

但在 Delphi 源代码的其他任何地方,我都找不到对子字符串 FLYAWAY_WRONGORDER 的引用。*

我的意图是使用调试 dcu 进行编译,然后在引发异常的行上放置一个断点并检查调用堆栈 UP 以查找原因。
我目前正在逐步降低代码直到发生错误,但这效率较低(复杂的应用程序)。

在其 OnException 处理程序中放置一个TApplicationEvents断点不会给我可用的调用堆栈信息:

在此处输入图像描述

那么,我怎样才能(有效地)追踪产生这个错误的地方呢?

关于正在发生的事情的背景:

实际上,我通过在几个地方调用主数据集的 ApplyUpdates 来“修复”错误,但由于我不确定原因,我想进一步调查。所以我的问题不是如何修复代码中的错误,而是如何 找到 代码中的错误

* 里面有一个 CheckForFlyAway 例程,TCustomADODataSet.InternalPostData.Win.ADODB我们不使用 ADO,我无法在这些例程中设置断点。

标签: delphidelphi-10.2-tokyotclientdataset

解决方案


推荐阅读