Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-10-2005
kikodelphi kikodelphi is offline
Miembro
 
Registrado: ene 2005
Posts: 23
Poder: 0
kikodelphi Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 12-10-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Smile

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"

__________________
No todo es como parece ser...
Responder Con Cita
  #3  
Antiguo 12-10-2005
Avatar de Xianto
Xianto Xianto is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nací en Neuquén (ARG), desde 2001 Spain
Posts: 151
Poder: 21
Xianto Va por buen camino
Post

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 !!!
__________________
El diseño dira si tiene futuro...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:51:28.


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
Copyright 1996-2007 Club Delphi