Użytkownik Vineet Deodhar napisał:
> I have "RESTRICT" at DB level.
> Whenever I wish to delete a parent record, I am in a fix (irrespective
> of REFINTEG=3 or 2 in dabo).
> Because at DB level, it will not allow to delete a parent row when child
> rows are there referencing this parent row).
>
> That's why I need to delete the child rows in order from bottom to top
> in beforeDelete().
> Then delete the parent.
Ok, now I understand. Any security rationale for doing that?
It's very unhandy.
In this situation you should use framework REFINTEG_RESTRICT integrity rule,
then write deleteUpward() method yourself, e.g.:
<code>
def deleteUpward(self, startTransaction=True):
startTransaction = startTransaction and self.beginTransaction()
try:
self.deleteAll(startTransaction=False)
parent = self.Parent
if parent:
parent.deleteUpward(startTransaction=False)
if startTransaction:
self.commitTransaction()
except (dException.DBQueryException, StandardError):
if startTransaction:
self.rollbackTransaction()
raise
</code>
Conditionally, you can use beforeDelete method, but remember that there will
be no single transaction, but one per business object.
--
Regards
Jacek Kałucki
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/[email protected]