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
