delphi - 特殊情况: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
断点不会给我可用的调用堆栈信息:
那么,我怎样才能(有效地)追踪产生这个错误的地方呢?
关于正在发生的事情的背景:
- Form 使用 DevExpress
TcxScheduler
连接到TcxSchedulerStorage
datamodule 中的组件,连接到嵌套TClientDataSet
的 s - 代码保存对这些数据集的所有更改 (ApplyUpdates)
- 在这些 DevExpress 组件的 BeginUpdate/EndUpdate 中,然后我插入、删除和更新这些数据集中的记录,在此过程中四处移动,甚至更改详细数据集中的父 ID,以便它们从当前详细数据集中“查看”中删除。
当我编辑时发生错误,然后发布一条记录正是这样做的。 - 德尔福东京 10.2.3,Win32 应用
- 欢迎提供有关该错误消息的任何其他信息,我找不到任何东西。
实际上,我通过在几个地方调用主数据集的 ApplyUpdates 来“修复”错误,但由于我不确定原因,我想进一步调查。所以我的问题不是如何修复代码中的错误,而是如何 找到 代码中的错误?
* 里面有一个 CheckForFlyAway 例程,TCustomADODataSet.InternalPost
但Data.Win.ADODB
我们不使用 ADO,我无法在这些例程中设置断点。
解决方案
推荐阅读
- docker - 用于 Apache NiFi 的自定义 docker 容器
- microsoft-graph-api - 是否有任何 REST API 可以为 Microsoft Teams 中的用户启用/禁用录制?
- javascript - React Native ios报错无效uiscrollviewindicatorstyle应该是黑白默认
- linux - Papi_avail 没有可用的事件 - 未知的 libpfm4 相关错误
- javascript - 访问表调用写入和读取
- javascript - Chart.update 不是函数类型错误
- javascript - 需要帮助访问 Firestore 子集合?
- bash - 用于输出包含搜索字符串的行的 Bash 函数,带有警告
- haskell - 模式匹配元组不是完全惰性的吗?
- material-ui - 在 firebase 上运行 yarn upgrade,现在我收到 Material-UI/Alert 错误