In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Transacciones anidadas

SQL databases
jose.luis
Posts: 1633
Joined: Fri Oct 14, 2005 10:56 pm

Transacciones anidadas

Postby jose.luis » Wed Jul 19, 2006 5:42 pm

Hola,
Estoy pensando en realizar un proceso protegido por una transacción. En ese
proceso está dividido en varios subprocesos. Quisiera proteger tambien esos
subprocesos con otra transaccion. Esquemáticamente sería algo así:
BeginTransacion
BeginTransaction
...
... Proceso A
...
EndTransaction
BeginTransaction
...
... Proceso B
...
EndTransaction
BeginTransaction
...
... Proceso C
...
EndTransaction
EndTransaction
Siguiendo ese esquema de transacciones... Me interesa que los procesos A,B,C
se reviertan (rollbackTransaction) si algún subproceso o el proceso general
falla.
No tengo mucha experiencia en el tema... por lo que cualquier pista, ayuda,
ejemplo o lo que sea será bienvenida. Para vuestra información estoy usando
ADO+SqlServer2000.
Saludos y gracias,
José Luis Capel
User avatar
jasm
Posts: 447
Joined: Tue Jul 08, 2008 8:12 pm

Transacciones anidadas

Postby jasm » Wed Jul 19, 2006 7:21 pm

Jose Luis,
No entiendo muy bien que pretendes.
Veo claro que quieres controlar transacciones, pero para el sistema toda
transacción debe ser un único proceso. Ni idea de si se pueden anidar.
(Ya sabes: prueba y error). Jamás se me dio el caso de tener que hacer
ese tipo de cosas.
Saludos
Jose A. Suarez
User avatar
jasm
Posts: 447
Joined: Tue Jul 08, 2008 8:12 pm

Transacciones anidadas

Postby jasm » Wed Jul 19, 2006 7:23 pm

Jose Luis,
En el esquema que planteas, si se rompe la segunda, la primera quedará
hecha, lo que seguramente producirá errores de consistencia de datos.
Saludos,
José Alfonso Suárez Moreno
User avatar
jasm
Posts: 447
Joined: Tue Jul 08, 2008 8:12 pm

Transacciones anidadas

Postby jasm » Wed Jul 19, 2006 7:45 pm

José Luis,
Mira que cita:
"Las transacciones pueden anidarse, aunque este anidamiento es
estrictamente sintáctico por naturaleza. Las transacciones no pueden
anidarse realmente. Podrí­a hacer que varias transacciones parecieran
ocurrir dentro de una secuencia de comandos, pero de hecho sólo se está
utilizando una transacción en sí­."
(Del libro "Aprendiendo Microsoft SQL Server 2000", Ed. Prentice Hall,
Autores: Waymire y Sawtell, ISBN: 970-26-0124-X).
Saludos
José A. Suárez
Manu
Posts: 108
Joined: Sun Sep 24, 2006 2:28 pm

Transacciones anidadas

Postby Manu » Wed Jul 19, 2006 8:32 pm

La verdad es que en ningún caso tiene sentido el anidamiento de
transacciones bajo mi punto de vista...
Si una "subtransacción" falla deberí­a deshacer todas las demás y eso
precisamente es lo que hace la general si falla cualquier acción de las
tablas afectadas...
José Alfonso Suárez Moreno escribió:
> José Luis,
>
> Mira que cita:
>
> "Las transacciones pueden anidarse, aunque este anidamiento es
> estrictamente sintáctico por naturaleza. Las transacciones no pueden
> anidarse realmente. Podrí­a hacer que varias transacciones parecieran
> ocurrir dentro de una secuencia de comandos, pero de hecho sólo se está
> utilizando una transacción en sí­."
>
> (Del libro "Aprendiendo Microsoft SQL Server 2000", Ed. Prentice Hall,
> Autores: Waymire y Sawtell, ISBN: 970-26-0124-X).
>
> Saludos
>
> José A. Suárez
Lautaro Moreira
Posts: 10
Joined: Tue Apr 10, 2007 1:24 am

Transacciones anidadas

Postby Lautaro Moreira » Wed Jul 19, 2006 9:43 pm

Hola,
La verdad es que no entiendo muy bien lo que quieres hacer, pero si lo
que quieres es que la operacion vuelva atras si cualquiera de los pasos
falla, entonces no necesitas anidacion, ya que son todos pasos de la
misma transaccion, ahora bien, si cada subtransaccion es un paso aparte,
no tiene sentido incluirlos en la misma transaccion ya que son
independientes.
Atte.,
Lautaro Moreira
José Luis Capel escribió:
> Hola,
>
> Estoy pensando en realizar un proceso protegido por una transacción. En ese
> proceso está dividido en varios subprocesos. Quisiera proteger tambien esos
> subprocesos con otra transaccion. Esquemáticamente serí­a algo así­:
>
> BeginTransacion
>
> BeginTransaction
> ...
> ... Proceso A
> ...
> EndTransaction
>
> BeginTransaction
> ...
> ... Proceso B
> ...
> EndTransaction
>
> BeginTransaction
> ...
> ... Proceso C
> ...
> EndTransaction
>
> EndTransaction
>
> Siguiendo ese esquema de transacciones... Me interesa que los procesos A,B,C
> se reviertan (rollbackTransaction) si algún subproceso o el proceso general
> falla.
>
> No tengo mucha experiencia en el tema... por lo que cualquier pista, ayuda,
> ejemplo o lo que sea será bienvenida. Para vuestra información estoy usando
> ADO+SqlServer2000.
>
> Saludos y gracias,
> José Luis Capel
>
>

Return to “SQL”