Transacciones Anidadas en .NET con SQL Server 2000

27/07/2005 - 16:50 por Juan Fran | Informe spam
Por razones de complejidad necesito establecer una serie de
transacciones anidadas contra un BBDD SQL Server a partir de una
SQLConnection. ¿Se puede hacer? y lo mas importante ¿ como podemos
hacerlo?.
Quizas tenga que cambiar todo el codigo y realizar las transacciones en
procedimientos almacenados en la BBDD. Me gustaria que alguien me
aclarase esto por que no se por donde salir.
Muchas gracias por 'escucharme'

Preguntas similare

Leer las respuestas

#1 qwalgrande
27/07/2005 - 23:39 | Informe spam
Hola.

Disculpa la curiosidad. ¿Qué razones de complejidad son esas que te llevan a
necesitar establecer transacciones anidadas? ¿Qué es eso que te lleva a
querer abrir una transacción cuando ya hay una abierta?

qwalgrande

"De lo que ves créete la mitad, de lo que no ves no te creas nada"
V. del V.


"Juan Fran" escribió en el mensaje
news:
Por razones de complejidad necesito establecer una serie de
transacciones anidadas contra un BBDD SQL Server a partir de una
SQLConnection. ¿Se puede hacer? y lo mas importante ¿ como podemos
hacerlo?.
Quizas tenga que cambiar todo el codigo y realizar las transacciones en
procedimientos almacenados en la BBDD. Me gustaria que alguien me
aclarase esto por que no se por donde salir.
Muchas gracias por 'escucharme'
Respuesta Responder a este mensaje
#2 Juan Fran
28/07/2005 - 08:57 | Informe spam
En primer lugar agradezco tu interes por mi problema.Quizas mi primer
mensaje no era muy claro.

El problema lo tengo en el mantenimiento de ficheros Maestro-Detalle en
una BBDD SQL Server 2000 a traves objetos SQLClient. (No utilizo OleDb)

Debido a que los registros de la tabla detalle contienen un gran numero
de campos he construido una clase que va insertando o modificando
registros a traves de instrucciones INSERT,UPDATE.

Para mantener la integridad de los datos establezco una transaccion al
comienzo del proceso de inserccion o modificacion del registro de la
tabla maestro y lo finalizo cuando he insertado todas los registros de
la tabla detalle.

La tabla de Detalle tiene un Trigger (Insert,Delete,Update) que me
actualiza una tabla de Stock.El problema lo tengo cuando tengo 2 lineas
que afectan al mismo registro de la tabla de Stock y es el siguiente:

Cuando voy a actualizar el segundo registro el sistema me manda un
mensaje de error en el cual me dice que se ha agotado el tiempo de
espera por lo que no puedo actualizar los datos.

Bajo mi corta experiencia con SQL Server creo que este mensaje es
debido a que el registro de la tabla de stock está bloqueado y no se
puede volver a actualizar hasta que no finalice la transaccion.

Y este es mi problema, quizas no haya enfocado bien el mantenimiento de
tablas maestro-detalle pero no sé como lo podria enfocar ya que creo
que mediante procedimientos almacenados el proceso seria muy tedioso.


qwalgrande ha escrito:
Hola.

Disculpa la curiosidad. ¿Qué razones de complejidad son esas que te llevan a
necesitar establecer transacciones anidadas? ¿Qué es eso que te lleva a
querer abrir una transacción cuando ya hay una abierta?

qwalgrande

"De lo que ves créete la mitad, de lo que no ves no te creas nada"
V. del V.


"Juan Fran" escribió en el mensaje
news:
Por razones de complejidad necesito establecer una serie de
transacciones anidadas contra un BBDD SQL Server a partir de una
SQLConnection. ¿Se puede hacer? y lo mas importante ¿ como podemos
hacerlo?.
Quizas tenga que cambiar todo el codigo y realizar las transacciones en
procedimientos almacenados en la BBDD. Me gustaria que alguien me
aclarase esto por que no se por donde salir.
Muchas gracias por 'escucharme'
Respuesta Responder a este mensaje
#3 Maxi
28/07/2005 - 14:37 | Informe spam
Hola, te recomiendo que leas este articulo donde explico como se puede armar
con Xml un maestro detalle y usando una sola transaccion

http://weblogs.golemproject.com/acc.../3957.aspx


Salu2
Maxi


"Juan Fran" escribió en el mensaje
news:
En primer lugar agradezco tu interes por mi problema.Quizas mi primer
mensaje no era muy claro.

El problema lo tengo en el mantenimiento de ficheros Maestro-Detalle en
una BBDD SQL Server 2000 a traves objetos SQLClient. (No utilizo OleDb)

Debido a que los registros de la tabla detalle contienen un gran numero
de campos he construido una clase que va insertando o modificando
registros a traves de instrucciones INSERT,UPDATE.

Para mantener la integridad de los datos establezco una transaccion al
comienzo del proceso de inserccion o modificacion del registro de la
tabla maestro y lo finalizo cuando he insertado todas los registros de
la tabla detalle.

La tabla de Detalle tiene un Trigger (Insert,Delete,Update) que me
actualiza una tabla de Stock.El problema lo tengo cuando tengo 2 lineas
que afectan al mismo registro de la tabla de Stock y es el siguiente:

Cuando voy a actualizar el segundo registro el sistema me manda un
mensaje de error en el cual me dice que se ha agotado el tiempo de
espera por lo que no puedo actualizar los datos.

Bajo mi corta experiencia con SQL Server creo que este mensaje es
debido a que el registro de la tabla de stock está bloqueado y no se
puede volver a actualizar hasta que no finalice la transaccion.

Y este es mi problema, quizas no haya enfocado bien el mantenimiento de
tablas maestro-detalle pero no sé como lo podria enfocar ya que creo
que mediante procedimientos almacenados el proceso seria muy tedioso.


qwalgrande ha escrito:
Hola.

Disculpa la curiosidad. ¿Qué razones de complejidad son esas que te llevan
a
necesitar establecer transacciones anidadas? ¿Qué es eso que te lleva a
querer abrir una transacción cuando ya hay una abierta?

qwalgrande

"De lo que ves créete la mitad, de lo que no ves no te creas nada"
V. del V.


"Juan Fran" escribió en el mensaje
news:
Por razones de complejidad necesito establecer una serie de
transacciones anidadas contra un BBDD SQL Server a partir de una
SQLConnection. ¿Se puede hacer? y lo mas importante ¿ como podemos
hacerlo?.
Quizas tenga que cambiar todo el codigo y realizar las transacciones en
procedimientos almacenados en la BBDD. Me gustaria que alguien me
aclarase esto por que no se por donde salir.
Muchas gracias por 'escucharme'
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida