DBI nabízí možnost použití transakcí, nicméně nezaručuje. Je nutno vědět zdali použitý databázovy „backend“ transakce podporuje.
FIXME: Dopsat seznam databázových backendů podporujících transakce.
dbh['AutoCommit'] = true dbh['AutoCommit'] = false
Příklad použití ve kterém si řídíme transakce sami:
Příklad 38.7. Ruční řízení transakcí v DBI
dbh['AutoCommit'] = false begin dbh.do("... SQL příkaz ...") dbh.do("... SQL příkaz ...") dbh.commit rescue puts "Transakce neuspěla" dbh.rollback end
Jiný přístup v řízení transakcí vychází z použití metody transaction
Příklad 38.8. Ruční řízení transakcí v DBI metodou transaction
dbh['AutoCommit'] = false dbh.transaction do |dbh| dbh.do("... SQL příkaz ...") dbh.do("... SQL příkaz ...") end