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

Cómo manejar bloqueo de registros?

Estas en el tema de Cómo manejar bloqueo de registros? en el foro de ASP Clásico en Foros del Web. Buenas: Quisiera saber cual es la mejor práctica para bloquear registros, o sea lo que necesito es que 2 personas no puedan modificar un mismo ...
  #1 (permalink)  
Antiguo 02/06/2006, 08:54
 
Fecha de Ingreso: marzo-2006
Mensajes: 83
Antigüedad: 18 años, 3 meses
Puntos: 0
Cómo manejar bloqueo de registros?

Buenas:
Quisiera saber cual es la mejor práctica para bloquear registros, o sea lo que necesito es que 2 personas no puedan modificar un mismo registro a la vez (típico de sistema mutiusuario). Cual es la mejor forma de manejarlo?
A mi lo que se me ocurrió es agregar un campo en todas las tablas y cada vez que alguien en un ABM quiere hacer una modificacion chequeo que ese campo sea = a 0, de ser así le asigno el valor 1 (por si viene otro usuario atrás a querer modificar el mismo registro no lo deje) y permito que continue con el proceso de modificación y al grabar la modificación le vuelvo a asignar el valor 0.
Si alguien tiene una mejor manera de manejarlo le agradezco.
Estoy trabajando con base de datos SQL Server.

Saludos!
  #2 (permalink)  
Antiguo 02/06/2006, 09:05
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Pero si para eso están los cerrojos del objeto recordset... .

http://www.todoexpertos.com/categori...uestas/115486/
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 02/06/2006, 09:43
 
Fecha de Ingreso: marzo-2006
Mensajes: 83
Antigüedad: 18 años, 3 meses
Puntos: 0
Con los cerrojos no se puede solucionar el tema...a ver si me explico mejor:
Si 2 usuario entran a un ABM de clientes, buscan el mismo registro (mismo cliente) y presionan el boton modificar para mostrarle la página con los textbox desbloqueados para que pueda modificar los datos y luego grabarlos por mas cerrojos que use esto el sistema lo permite y si un user cambia la direccion del cliente y graba el cambio, el otro usuario al estar tambien en el modo de edición (modificacion) no verá los cambios y puede modificar el mismo campo cuando en realidad ya lo modifico el otro user.
Yo lo que quiero lograr es que si alguien presiona el boton modificar de un ABM no se lo permita hacer a otro user, sobre el mismo registro, hasta que el otro salga de la pantalla de modificaciones. Me explico?
Si vos podés lograr esto con los cerrojos por favor decime como haces ya que yo probé de mil maneras y no pude.
Muchas gracias!
Saludos!
  #4 (permalink)  
Antiguo 02/06/2006, 10:33
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Lo que quieres entonces es controlar tu interfaz para que si un registro está en modo "edición" por algún usuario entonces no se pueda modificar...pero estás hablando de instantes de tiempo, lo que yo haría sería como un administrador de contenidos, que cada contenido tenga un estátus, podrías hacer más que un campo más, otra tabla que determine que contenidos se encuentran actualmente en modo edición, pero corres varios riesgos, explico mejor:

Cuando un usuario elige la opción editar de cierto contenido, el id de dicho contenido se va a una tabla temporal de artículos que se encuentran ocupados, y el sistema borra este id de dicha tabla cuando la edición se ha terminado, de modo que el usuario B cuando elija editar, se hará una comprobación de es id en la tabla temporal, si este id se encuentra, entonces el usuario B verá los campos deshabilitados.

El problema radica en que si no se concluyó la edición, este registro continuará "bloqueado", por lo tanto quizás necesites hacer otra interfaz de mostrar contenidos bloqueados y por quién está siendo bloqueado, en fin, la verdad que son muchas cosas a considerar para este sistema y yo creo que al lmenos que de verdad tenga muchísima concurrencia, debería tomarse en cuenta para desarrollarse, de otra manera, como que no le encuentro mucho caso, pero bueno, ese es mi aporte.

Y el comentario de los cerrojos, es precisamente para controlar esto por instantes de tiempo, más allá que el usuario vea la interfaz bloqueada o no, se refiere a que dos usuarios no podrían editar el mismo registro al mismo tiempo.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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 23:36.