|
From: Pronichev A. <dy...@ag...> - 2005-07-05 13:31:19
|
Hello everybody. Does anybody know anything about subject? How can I use transactions in SPOPS (may be somebody already wrote such module)?
I would like to write something like this in my SPOPS object package:
package My::SPOPS::Foo;
....
sub pre_save_action {
my $c = shift;
my $tr = SPOPS::Transaction->new( $c->global_datasource_handle );
my $object2 = My::SPOPS::Bar->new(...);
$tr->add_dbh( $object2->global_datasource_handle );
...
$obj->save or $tr->rollback('error message');
...
1;
}
sub post_save_action {
my $c = shift;
if $c->transaction {
my $tr = $c->transaction;
# This will commit ALL dbh, added by add_dbh
$tr->commit or $tr->rollback('error message');
}
1;
}
package main;
....
my $foo = My::SPOPS::Foo->new();
...
$foo->save or My::Exception->throw(...);
Thanks in advice.
--
WBR dyker
Agava Software
|