38.2.4. Transkace

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


Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .