J'ai quelques méthodes qui devraient être exécutées seulement dans le cas où ma classe de conducteur DBI est actuellement dans une transaction pour assurer l'intégrité des données. Je cherche à écrire quelque chose comme ceci:Comment puis-je tester si l'état du pilote DBI est dans une transaction?
sub m{
my ($self , $dbh) = @_ ;
unless($dbh->isInTransaction()){
die "Use this only within a transaction\n" ;
}
etc ...
}
De la documentation pour begin_work, je comprends que begin_work mettra à AutoCommit
au large pendant le temps de la transaction et le remettre à « sur » le commettre ou rollback, mais je me demande si tester la valeur de l'attribut AutoCommit
est un moyen sûr de mettre en œuvre isInTransaction
.
Merci pour votre aide.
J.
Ce 'BegunWork' est exactement ce dont j'ai besoin (Oui j'utilise AutoCommit). Je ne peux pas le trouver dans le document DBI cependant. Est-ce une fonctionnalité non documentée? – jeje
Oui, ce n'est pas documenté - c'est pourquoi j'ai été surpris qu'il n'y ait pas de support. Cela semble être une chose si simple à fournir. –