Foros del Web » Programación para mayores de 30 ;) » .NET »

Tengo una duda con las Transacciones

Estas en el tema de Tengo una duda con las Transacciones en el foro de .NET en Foros del Web. Saludos a tod@s: Tengo una pequeña duda, es posible establer un objeto transacción para dos objetos sqlcommand que ejecutan procedimientos almacenados diferentes cada uno. La ...
  #1 (permalink)  
Antiguo 19/12/2004, 12:46
 
Fecha de Ingreso: diciembre-2004
Mensajes: 2
Antigüedad: 19 años, 4 meses
Puntos: 0
Sonrisa Tengo una duda con las Transacciones

Saludos a tod@s:
Tengo una pequeña duda, es posible establer un objeto transacción para dos objetos sqlcommand que ejecutan procedimientos almacenados diferentes cada uno.
La idea de hacerlo así es que si falla algún sqlcommand me realice el rollback de la base de datos.
  #2 (permalink)  
Antiguo 19/12/2004, 22:11
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 21 años, 11 meses
Puntos: 7
Lo mas optimo seria entonces que uses la transaccion a nivel de la conexion, o que incluyas un control de transacciones en cada stored procedure
  #3 (permalink)  
Antiguo 20/12/2004, 01:11
 
Fecha de Ingreso: diciembre-2004
Mensajes: 130
Antigüedad: 19 años, 4 meses
Puntos: 0
Transaccion

Hola ...

Podrías implementar una clase Transaccion basada en el uso del SqlTransacction y SqlConnection del NameSpace System.Data.SqlClient (Si tu manejador de BD es SQL SERVER), así, si llegase a ocurrir un error invocarías al método Rollback() y si la transacción se llegara a completar sin problemas invocarías al método Commit().

Código:
public static void agregar(
	int codigoReporteProblema,
	int codigoAnalista,
	DateTime fechaInicio,
	DateTime fechaFin,
	int cantidad,
	int codigoTiempo)
{
	Transaccion oTransaccion = new Transaccion();
	try
	{
		SolucionProblemaAD.agregar(
			codigoReporteProblema,
			codigoAnalista,
			fechaInicio,
			fechaFin,
			cantidad,
			codigoTiempo,
			oTransaccion );

		ReporteProblema.actualizarEstado(
			codigoReporteProblema,
			2,
			oTransaccion);

		oTransaccion.Commit();
	}
	catch(Exception ex)
	{
		oTransaccion.Rollback();
		throw ex;
	}
}
Otra manera de manejar las transacciones es usando los servicios COM+, puedes encontrar un paso a paso de cómo crear un componente que use estos servicios en ...

http://support.microsoft.com/default...d=kb;es;306296

http://www.microsoft.com/spanish/msd...comservnet.asp

Saludos cordiales.
__________________
langdotnet
  #4 (permalink)  
Antiguo 20/12/2004, 03:58
 
Fecha de Ingreso: diciembre-2004
Mensajes: 2
Antigüedad: 19 años, 4 meses
Puntos: 0
Ante todo gracias por responderme al mensaje. Me has terminado de aclarar las dudas, era una cosa más o menos así la que pretendía hacer, sino que tu me lo has hecho ver desde otra perspectiva. Gracias y Felices fiestas
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 14:03.