【发布时间】:2010-10-24 01:28:55
【问题描述】:
我使用Delphi 7 + Zeos + MySQL,当我尝试发布主表时遇到问题,首先发布详细信息数据集,引发数据库中的引用完整性异常,'因为详细信息表需要ID主表。
我可以恢复这种行为吗?我可以在细节之前持久化主表吗?
【问题讨论】:
-
没有必要这样做,这是默认行为,每次我尝试使用这种方式时都会遇到同样的问题。
我使用Delphi 7 + Zeos + MySQL,当我尝试发布主表时遇到问题,首先发布详细信息数据集,引发数据库中的引用完整性异常,'因为详细信息表需要ID主表。
我可以恢复这种行为吗?我可以在细节之前持久化主表吗?
【问题讨论】:
我认为这正是TDataSet 的工作方式。如果您有未发布的详细记录,如果我没记错的话,master.Post 会强制它们到Post。
所以我猜你有类似的东西:
tblMaster.Insert;
tblMaster.FieldByName('foo').Value := 'foo';
tblDetail.Insert;
tblDetail.FieldByName('bar').Value := 'bar';
tblMaster.Post; // error!
tblDetail.Post;
您应该可以通过先发布 master 来解决此问题:
tblMaster.Insert;
tblMaster.FieldByName('foo').Value := 'foo';
tblMaster.Post;
tblDetail.Insert;
tblDetail.FieldByName('bar').Value := 'bar';
tblDetail.Post;
【讨论】: