webForumDet fria alternativet
Logga in / Bli medlem

SP Rollback

Databaser & SQL

5 svar · 256 visningar · startad av ironhead

Medlem sedan mars 20011 346 inlägg
Trådstart#1

Typ:

if @@error = 0
Begin
COMMIT TRANSACTION
End
Else
ROLLBACK TRANSACTION
END

Varför använder man inte alltid denna rollback i Lagrade Procedurer?
Krävande?
Onödigt?
Andra synpunkter?

Medlem sedan dec. 200012 464 inlägg
#2

Du kan ju sköta transaktionshanteringen utanför procedurerna.

Det blir oftast enklare om man har många procedurer som skall anropa varandra.

Medlem sedan mars 20011 346 inlägg
#3

Utanför procedurerna? Hur då?

Medlem sedan dec. 200012 464 inlägg
#4

Exakt hur beror på vilken miljö du jobbar i. I Asp t.ex

connect.begintrans
on error resume next
connect.execute("exec ...")
on error goto 0
if err.errno <> 0 then
   connect.rollbacktran
   'cleanup
   'visa lämplig text
   response.end
end if

on error resume next
connect.execute("exec ...")
on error goto 0
if err.errno <> 0 then
   connect.rollbacktran
   'cleanup
   'visa lämplig text
   response.end
end if
connect.committrans

Om man jobbar i en EJBserver så kan man låta den sköta transaktionshanteringen.

Medlem sedan mars 20011 346 inlägg
#5

åhå! Tackar allra ödmjukast ;)

Sista fråga bara vad är en EJBServer? :q

Medlem sedan dec. 200012 464 inlägg
#6

EJB = Enterprise Java Beans det är en komponent i J2EE.

264 ms totalt · 4 externa anrop · v20260731065814-full.c32e866c
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)