Citat:
IDeveloper: Ne znam da sam pominjao da je ovo zastita od nestanka struje! Za to sluzi UPS!
U naslovu teme je "pucanje"! Ne mogu bas sve do slova i bukvalno da objasnjavam!
wow

ok, da ne bi bilo zabune, niko ne ocekuje ni od koga ovde da sve do slova objasnjava, ucesce ovde je dobrovoljno i po broju poruka i po detaljnosti; ali ono sto se definitivno ocekuje od svakog je da ne odgovara na naslove poruka nego na pitanje koje je postavljeno u poruci. Ono sto tebi predstavlja "pucanje" ne mora drugima da ima isto znacenje; meni npr. 'pucanje baze' ima totalno drugacije znacenje od 'pucanja sql statement-a' koje se resava rollbackom.
I kad smo vec kod rollback-a, off topic, snimanje transaction checkpoint-a i nasledjivanje parent transakcije (ako postoji) koje radis u kodu koji si okacio je nepreporucljivo, nested transakcije savrseno dobro rade posao i obezbedjuju atomicity cele transakcije. Koriscenje save pointa u "nizoj" transakciji razbija "sve ili nista" koncepciju vise transakcije i ti u nizoj transakciji odlucujes da li je za visu transakciju prihvatljivo ili ne da neka niza transakcija ne odradi posao i da se pretvara da je sve ok. Ovo je narocito vazno ako je ceo taj SQL posao samo deo DCOM MTS transakcije ili slicnog high level mehanizma u kome mozda drugi deo MTS transakcije zavisi od toga dali je ta niza transakcija odradila posao kako treba, svi ce se pretvarati da je sve ok, a commit-ovano stanje distribuiranog sistema ce postati nestabilno. Ovaj kod je npr ekvivalentan gutanju Exception-a u .NET-u i postoji dobar razlog zasto rollback "unistava" celu hijerarhiju transakcije a ne samo svoju nested instancu. Ako si sa druge strane prisiljen da koristis save point kao jedino resenje to je prva indikacija da dizajn aplikacije/baze nije dobar.
PS: Kad vidis da si napravio propust u svojoj poruci, gledaj da umesto da uradis copy/paste cele poruke u novu poruku uradis izmenu svoje postojece poruke, narocito ako je poruka sa kilometarskim kodom.