Thread Update auf db mit perl
(19 answers)
Opened by Duff at 2008-01-15 16:34
Wenn in dem Statement schon ein Fehler ist, wird erst gar nichts in die DB geschrieben, so dass Du auch kein Rollback brauchst.
Ein Rollback (und damit AutoCommit => 0) macht dann Sinn, wenn Du Transaktionen verwenden willst. D.h. wenn Du eine ganze Reihe von Aktionen hast und wenn eine einzige davon schiefläuft, willst Du alles wieder rückgängig machen. Keinen Sinn macht es bei einem einzigen Statement... Und vor allem muss es die DB unterstützen... Hier macht es Sinn: Code: (dl
)
1 1) Trage was in Tabelle A ein Hier macht es keinen Sinn, da das Statement erst gar nicht ausgeführt wird: Code: (dl
)
1) Führe ein fehlerhaftes Statement aus (oder versuche es) Oder mit etwas Perl-Code Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 # AutoCommit => 0 my $rows_a = $dbh->do( $stmt_1, undef, @binds_1 ); my $rows_b = $dbh->do( $stmt_2, undef, @binds_2 ); unless( defined $rows_a and defined $rows_b ){ # wenn eins von beidem fehlgeschlagen ist $dbh->rollback; } else{ $dbh->commit; } OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/) -- Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html Perl-Entwicklung: http://perl-services.de/ |