in reply to Re: Re: Re: DBI AutoCommit clarification
in thread DBI AutoCommit clarification

If you check the DBI sources, begin_work() is nothing more than $dbh->{AutoCommit} = 0;...

The nice thing about $dbh->begin_work() over local($dbh->{AutoCommit}) = 0; is that $dbh->begin_work() will not automatically commit on exiting scope...
That's a good point. My first reaction was that no driver should do that, but then I looked at my sources and realized that DBD::Sybase does indeed commit silently when AutoCommit is turned back on. I'm not sure that I like that behavior - I should probably issue a message about un-committed work at that point - if you have AutoCommit turned off you should really be forced to explicitly commit or rollback any changes, and just flipping AutoCommit back on isn't the same thing.

Michael