apparently Begin() doesn't actually do anything..

This version calls dbh->begin_work, which temporarily turns off
AutoCommit (until the next rollback/commit) and begins a transaction.

If AutoCommit is off, you are already in a transaction and this version
still does nothing. Perhaps Begin() could give an error if its called
and the object is Dirty or something?

Apparently !DBIAttr is ignored if you're using a pre-existing !DataSource,
so this was the only way for me to get a transaction (required for
postgres large objects - else they fail in really obscure ways..)

--- /usr/share/perl5/DBIx/Recordset.pm  Tue Dec 11 16:12:03 2001
+++ Recordset.pm        Mon Dec 17 11:03:51 2001
@@ -727,8 +727,8 @@
     {
     my ($self) = @_ ;
 
-    # 'begin' method is unhandled by DBI
-    ## ??  $self->{'*DBHdl'} -> func('begin') unless $self->{'*DBHdl'}->{'AutoC
ommit'};
+    # temporarily turns AutoCommit off
+    $self->{'*DBHdl'} -> begin_work if $self->{'*DBHdl'}->{'AutoCommit'};
     }
 
 ## ----------------------------------------------------------------------------


-- 
 - Gus

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to