On Sun, 2006-09-24 at 09:43 -0700, Joshua D. Drake wrote:
Here is some simple psuedo-code for you:
BEGIN;
INSERT INTO invoices VALUES('a','120.00');
ERROR: You can't sell part 'a' for 120.00.
ROLLBACK;
Yes it is a silly example but that is EXACTLY what void means.
No its not. That is rolling back a database transaction. Voiding in the
application is where you have not rolled back, you have committed. In
that commit intgerval (or synch interval) all logically-related
operations have occurred for that business transaction. *Then* you want
to void that business transaction: ie delete the record of that business
event.
Voiding as you folk have been discussing is an application/business
-level thing, not voiding/rolling back a database transaction.