我有4个ClientDataSets:
主
---详情1
---详情2
------ SubDetail 2.1 - 这里有一个FK to Detail 1
数据集上记录的插入顺序为:Master,Detail 1,Detail 2,SubDetail 2.1。
但是,当我调用ApplyUpdates时,数据库上的插入顺序是Master,Detail 2,SubDetail 2.1,Detail 1。
所以我得到一个错误“外键引用目标不存在”,因为SubDetail 2.1上有一个FK,它指向Detail 1上的记录,该记录尚未插入数据库。
我可以更改数据库中嵌套数据集的发布顺序吗?或者有其他方法可以解决这个问题吗?
答案 0 :(得分: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;