主/细节行为

时间:2009-05-05 23:04:36

标签: delphi dataset

我使用的是Delphi 7 + Zeos + MySQL,当我尝试发布Master表时遇到问题,详细数据集首先发布,在数据库中引发了参照完整性异常,'couse详细信息表需要ID主表。

我可以恢复此行为吗?我可以在详细信息之前坚持主表吗?

1 个答案:

答案 0 :(得分:1)

我认为这只是TDataSet的工作方式。如果您有未发布的详细记录,那么主人。Post会强制他们Post,如果我没记错的话。

所以我猜你有类似的东西:

tblMaster.Insert;
tblMaster.FieldByName('foo').Value := 'foo';
tblDetail.Insert;
tblDetail.FieldByName('bar').Value := 'bar';
tblMaster.Post; // error!
tblDetail.Post;

您应该可以通过首先发布大师来解决这个问题:

tblMaster.Insert;
tblMaster.FieldByName('foo').Value := 'foo';
tblMaster.Post;
tblDetail.Insert;
tblDetail.FieldByName('bar').Value := 'bar';
tblDetail.Post;