FireDAC主详细信息缓存更新无法正常工作

时间:2020-10-13 16:31:30

标签: delphi master-detail firedac

我在FireDAC中遇到主从问题。我有四个TFDQueries

  • 主人qrPerson
  • 3个详细信息qrAddress,qrPhone,qrEmail

对于每个人

  • SQL是简单查询select * from <table>
  • 现有的相应数据源
  • CachedUpdates = true
  • Connection = conMain
  • SchemaAdapter = saPerson
  • 交易= trMain
  • UpdateTransaction = trMain
  • 事件OnNewRecord获取新ID

有关详情

  • FetchOptions.DetailCascade = true
  • Master = dsPerson
  • MasterFields = ID_CONTACT
  • IndexFieldNames = ID_CONTACT

在保存数据之前,我需要为每个DataSet.State = dsInsert获取数据。我打电话给qrPerson.Post(主管),只有一个详细信息(qrEmail)有UpdatesPending = true。其他两个详细信息(qrAddress,qrPhone)具有UpdatesPending = false。我检查了事件OnAfterPost的详细信息,只有一个被称为qrEmailAfterPost

接下来的saPerson.ApplyUpdatessaPerson.CommitUpdates仅保存主要数据和一个细节。

我的问题摘要: 我将记录插入主数据,也将记录插入每个细节。它们都具有State = dsInsert。在母版上过帐后,只有母版和一个明细将插入的记录保存到数据库中。另外两个细节忘记了插入的数据。

您能帮我解决这个问题吗?谢谢

0 个答案:

没有答案
相关问题