0

我有 4 个这样的 ClientDataSet:

掌握

---细节1

---细节2

------SubDetail 2.1 - 这里有一个 Detail 1 的 FK

数据集上记录的插入顺序为:Master、Detail 1、Detail 2、SubDetail 2.1。

但是,当我调用 ApplyUpdates 时,数据库上的插入顺序是 Master、Detail 2、SubDetail 2.1、Detail 1。

所以我收到一个错误“外键引用目标不存在”,因为 SubDetail 2.1 上有一个 FK,它指向 Detail 1 上的一条记录,该记录尚未插入数据库。

我可以更改数据库上嵌套数据集的发布顺序吗?或者有其他方法可以解决这个问题吗?

4

1 回答 1

0

您可以在数据集上使用以下内容

procedure TTemplate.MasterpostBeforeInsert(DataSet: TDataSet);
begin
  if Assigned(Dataset.DataSource) and Assigned(Dataset.DataSource.DataSet) then
    if Dataset.DataSource.DataSet.State in [dsInsert] then 
      Dataset.DataSource.DataSet.Post;
end;
于 2012-11-14T12:00:38.267 回答