Foros del Web » Programando para Internet » ASP Clásico »

Transacciones en ASP

Estas en el tema de Transacciones en ASP en el foro de ASP Clásico en Foros del Web. Hola a todos, tengo el siguiente problema, tengo que realizar varios insert en mi base de datos desde distintas ventanas y que sea una única ...
  #1 (permalink)  
Antiguo 23/04/2007, 04:51
 
Fecha de Ingreso: octubre-2006
Ubicación: Madrid
Mensajes: 23
Antigüedad: 18 años, 7 meses
Puntos: 0
Transacciones en ASP

Hola a todos,
tengo el siguiente problema, tengo que realizar varios insert en mi base de datos desde distintas ventanas y que sea una única transacción, de forma que si falla por algún motivo, se realize un rollback de todos los insert. He leido en google que se desaconseja pasar una conexion en el objeto session o application, entonces cual sería la mejor forma de hacerlo?
Gracias por la ayuda.
  #2 (permalink)  
Antiguo 23/04/2007, 07:44
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Re: Transacciones en ASP

Una solucion podria ser usar procedimientos almacenados, donde haces todos los inserts, manejas los errores, y si no se ha dado error, tonces haces el commit, sino no.

te dejo un ejemplo de codigo que hice hace harto tiempo en pl sql

Código:
ERROR NUMBER;
AUX1  NUMBER;
AUX2  NUMBER;
AUX3  NUMBER;
AUX4  NUMBER;
BEGIN  
	AUX1  := FUN_SET_EEMT( V_VPRSN_CDG,V_PRCS_CDG_SEQ,V_EEMT_CDG,V_PRMM_CDG,V_EEMT_TXT,V_EEMT_PONDERACION,V_EEMT_CUMPLIMIENTO,V_EEMT_SWT_CONTINGENTE);
	AUX2  := FUN_SET_TOTAL_META(V_VPRSN_CDG,V_PRCS_CDG_SEQ);
	AUX3  := FUN_SET_TOTAL_EVALUACION(V_VPRSN_CDG,V_PRCS_CDG_SEQ);
	AUX4  := FUN_SET_AVANCE_EEMT(V_VPRSN_CDG,V_PRCS_CDG_SEQ);


	IF AUX1 <> -1 AND AUX2 <> -1 AND AUX3 <> -1 AND AUX4 <> -1 THEN
	   COMMIT;
	   ERROR :=AUX1;
	ELSE
		ROLLBACK;
		ERROR := -1;
	END IF;
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 07:52.