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 です。

そのため、データベースにまだ挿入されていない詳細 1 のレコードを指す SubDetail 2.1 に FK があるため、「外部キー参照ターゲットが存在しません」というエラーが表示されます。

データベース上のネストされたデータセットの投稿順序を変更できますか? または、この問題を解決する別の方法はありますか?

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 に答える