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

Actualización por multiples usuarios

Estas en el tema de Actualización por multiples usuarios en el foro de ASP Clásico en Foros del Web. Amigos, Tengo una aplicación en ASP que tiene algunas actualizaciones bastante críticas y quisiera saber como manejarlas. Supongamos que el usuario X ve un listado ...
  #1 (permalink)  
Antiguo 22/11/2007, 11:44
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 21 años, 5 meses
Puntos: 6
Actualización por multiples usuarios

Amigos,

Tengo una aplicación en ASP que tiene algunas actualizaciones bastante críticas y quisiera saber como manejarlas.

Supongamos que el usuario X ve un listado de elementos de una tabla que tienen SOLO un determinado estatus = 01.

El usuario X puede eliminar estos registros seleccionando con checkbox y haciendo click en un botón.

Mientras tanto, el usuario Y está viendo algunos elementos comunes de la misma tabla en otra página que le permite cambiar el estatus de 01 a 02.

Si el usuario X marca un elemento para eliminarlo (aun no le da al botón) y el usuario Y cambia el estatus de = 01 a 02. Luego, X clicka el botón y eliminará un registro de la tabla que tiene estatus = 02, cuando solo debería hacerlo con los que tienen el estatus =01.

Yo puedo evitarlo con el delete del SQL, pero el usuario X no quedará satisfecho porque el indicó eliminar un registro que no se eliminó. Si por el contrario, dejo eliminar el registro, el usuario Y dirá que el sistema eliminó un registro que el habia marcado con 02, precisamente para que no lo eliminaran.

Como pueden manejarse este tipo de excepciones usando ACCESS y ASP?

Lo ideal sería que el usuario que llega de segundo, no tenga acceso al registro, pero ni idea de como manejarlo.

Saludos y gracias,
Luis Vásquez

Última edición por luisvasquez; 22/11/2007 a las 14:35
  #2 (permalink)  
Antiguo 23/11/2007, 13:29
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Actualización por multiples usuarios

para eso tienes varias opciones, lo que yo siempre uso son las transacciones de la base de datos, de esa manera la persona que llegó segundo hace hasta que el primer usuario termine de hacer el cambio que tenga planificado, para las transacciones se usa: Conexion.BeginTrans para aperturar la conexión... Conexion.CommitTrans para cerrar la conexión con éxito o Conexion.RollbackTrans para cerrar la conexión con error; esta última lo que hace es deshacer todos los cambios (Actualizaciones) en la base de datos que se hicieron posteriores al BeginTrans y el CommitTrans simplemente las confirma, mientras la transacción no se haya cerrado, ningún usuario podrá acceder a la información. (al menos no usando access)

otra opción es que al seleccionar hagas un update a la tabla, a una columna que indique una especia de estatus que la inmovilice para cualquier otro usuario , antes de actualizar la base de datos evaluar dicha columna y si elflag esta activado mostrar un mensjae al usuario indicando que el registro esta siendo modificado por otro usuario y que tiene que esperar, este último recurso no me gusta usarlo porque son demasiadas lecturas a la base de datos y cuando se tienen demasiados registros puede volverse algo lento.

Salud
.
  #3 (permalink)  
Antiguo 23/11/2007, 14:11
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 21 años, 5 meses
Puntos: 6
Re: Actualización por multiples usuarios

Gracias César,

La primera opción me gusta más, sin embargo, una vez intenté realizar algo usando esas instrucciones y no me funcionó bien. Supongo que debo probar con más paciencia...

Saludos y muchas gracias,
Luis
  #4 (permalink)  
Antiguo 23/11/2007, 14:24
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Actualización por multiples usuarios

la opción de la transacción para mi siempre ha sido la mejor alternativa, la uso en todos mis sistemas, lo que suele ocurrir cuando se utilizan es que se ubican en una parte del código donde no deben estar, y terminas bloqueando a todos los usuarios o terminas haciendo un rollback y deshaciendo toda la actualización de data sin querer hacerlo,

buena suerte...
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 11:07.