是否可以在缓存更新模式下调用 FireDAC 查询上的 Applyupdates 而不清除其 Delta ?
这样做的原因是因为我有 4 个 FDQuery,我想将它们一起保存或一起取消,如果它们中的任何一个出现错误。如果发生任何问题,我可以使用单个事务来回滚所有更改,但这会使每个应用更新成功的 FDQuery 的 Delta 为空。
所以我想调用某种不会清除 Delta 的 ApplyUpdates,并且只有当所有 FDQuery 的 ApplyUpdates 都成功时,我才会提交事务并在每个 FDQuery 上调用 CommitUpdates 以清除它们的 Delta。但是,如果其中一个失败,每个 FDQuery 的更改仍将保留在它们的 Delta 中,因此我回滚事务并且用户仍然可以修复数据并尝试再次保存它们。
更新:正如@Brian 评论的那样,将属性 UpdateOptions.AutoCommitUpdates 设置为 False 可以解决问题并且不会清除 Delta。