Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Manejo de Transacciones en Procedimientos Almacenados

Estas en el tema de Manejo de Transacciones en Procedimientos Almacenados en el foro de Bases de Datos General en Foros del Web. Holas... tengo el siguiente problema necesito ejecutar un SP (SP1)que se inicia con una transaccion y que realiza ciertas operaciones.... dentro de este mismo SP ...
  #1 (permalink)  
Antiguo 18/04/2008, 10:17
Avatar de el mago de oz  
Fecha de Ingreso: octubre-2005
Mensajes: 192
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta Manejo de Transacciones en Procedimientos Almacenados

Holas... tengo el siguiente problema

necesito ejecutar un SP (SP1)que se inicia con una transaccion y que realiza ciertas operaciones.... dentro de este mismo SP ejecuto otros SP (SP2, SP3, SP4, por ejemplo)...
Necesito que si se cae uno de los SP que ejecuto desde SP1 (sea SP2 o SP3 o SP4) haga un rollback para todos los SP (SP1, SP2, SP3, SP4)...

Ademas si despues de ejecutar SP2 , SP3 y SP4 sigue la ejecucion de SP1 y se cae despues, necesito que haga un rollback para todos los SP...

en el fondo... si se cae cualquier SP haga un rollback para todos y no se sigan ejecutando los posibles SP que hayan mas abajo....

He probado varios metodos... colocando transacciones dentro de los otros SP (los que ejecuta SP1)... haciendo rollback por aqui y por alla pero no hay caso...no logro dar con la configuracion idonea de mis transacciones....

Cual serìa la solucion??

saludos y gracias...
__________________
"No a las dictaduras, no a la impunidad, no al comercio injusto que explota al menor de edad. Sí a las autocracias, sí a la libertad, el tercer mundo va a estallar."
Finisterra MAGO DE OZ
  #2 (permalink)  
Antiguo 22/04/2008, 04:06
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: Manejo de Transacciones en Procedimientos Almacenados

Utiliza excepciones.

De modo que si alguno SP falla lanza una excepción que puedes volver a lanzar hasta que llegues al SP1 (o el que sea el que llama al resto) y en este haces un ROLLBACK que afectará al resto.

Por supuesto, no hagas COMMIT dentro de los SP2, etc

Si todo va bien, haces el commit al final del SP1.

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:12.