Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   RollBack con más de una transacción (https://www.clubdelphi.com/foros/showthread.php?t=26072)

kikodelphi 12-10-2005 15:26:14

RollBack con más de una transacción
 
Si desde un proced. almacenado donde grabo el Maestro, envío a otro proced. almacenado para que haga el Detalle, y la trans. Detalle falla y hace RollBack: ¿Que ocurre en la trans. Maestro? cuando vuelve hace Rollback en el Maestro automaticamente o debo preguntar por el estado de @@ERROR ?

Ambas transacciones están en diferentes procedimientos almacenados.

lucasarts_18 12-10-2005 15:50:20

debes preguntar por el estado del error que devuelve ese procedimiento almacenado, con respecto a lo otro no sé si abortará el procedimiento, por ahora hazlo con un

Código SQL [-]
 IF @@ERROR = 547    print "A check constraint violation occurred"

:)

Xianto 12-10-2005 20:24:25

Buenas, el rollback solo te sirve para la transaccion activa, si en ella llamas a otro procedimiento el hara lo suyo sin intervenir en lo que haces en el primer proc.

Ejemplo:

Código:

proc1
 
exec 'proc2 1,2,3,4'
 
begin transaccion pepe
insert into tabla (a,b,c,d)
values (1,2,3,4)
 
if @@error<>0
  rollback...
else
  commint....

Esto ha sido siempre asi, lo si puedes hacer es crear un tercer procedimiento, en el cual puedas volver atras lo que hizo el 2, ejemplo:

Código:

if @@error<>0
  begin
        rollback...
        exec 'proc3'
  end
else
  commint....

Donde el proc3 anularia lo que hizo el proc2...

Saludetes !!!


La franja horaria es GMT +2. Ahora son las 00:17:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi