Le jeu 13/11/2003 � 20:08, Perrin Harkins a �crit :
> On Thu, 2003-11-13 at 10:32, Christophe Musielak wrote:
> > My question is : is it safe to use transactions of multiple objects,
> > doing a commit or rollback at the end as i'm sure i will stay in the
> > same interpreter space and that no other user can ask for the same
> > database handle to do some stuff while i'm working?
>
> Yes. Database handles are not shared between interpreters.
Ok
>
> > btw, ApacheDBI is always returning me a handle with the default
> > parameters i used when issuing the connection ( {AutoCommit => 1} for
> > example), even if i changed the parameters with
> > local->{dbh}->{AutoCommit} = 0.
>
> Hmmm... Was I talking to you about this on Perlmonks?
Yes
>
> It sounds like maybe you don't understand what local() does, which is
> not surprising since hardly anyone does. Any change you make with
> local() only lasts for the current scope. If you change things without
> local(), it will change the cached handle permanently.
Thanks for your answer Perrin. I tried without local() too and i see
exactly the same result, ie each time i ask DBI via ApacheDBI for a
database handle, i get the handle with the same parameters i created the
handle with, not the ones i just modified, although i can see while
login it's the same handle.
To be clear, as my english not so good :
-----------------------------
my $db = DBI->connect($dsn,$user, $password, { AutoCommit => 1,
RaiseError => 1 } )||
die "ERROR NO_CONNECTION_TO_POSTMASTER\n";
print "$db"."\n";
print "".$db->{AutoCommit}."\n";
$db->{AutoCommit} = 0;
print "".$db->{AutoCommit}."\n";
my $db2 = DBI->connect($dsn,$user, $password, { AutoCommit => 1,
RaiseError => 1 } )||
die "ERROR NO_CONNECTION_TO_POSTMASTER\n";
print "$db"."\n";
print "".$db->{AutoCommit}."\n";
-----------------------------
And here is the result :
Database::Dbh = Apache::DBI::db=HASH(0x8f95d28)
Database::Dbh =1
Database::Dbh = # ok AutoCommit Off
Database::Dbh = Apache::DBI::db=HASH(0x8f95d28) # ok same handler
Database::Dbh =1 <<<<<<< AutoCommit back On !!
Is this a normal behave of Apache::DBI or am i missing something?
Thanks a lot for your help.
Christophe.
> - Perrin
--
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html