Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

rowlock y bloqueos en SQLserver2000

Estas en el tema de rowlock y bloqueos en SQLserver2000 en el foro de SQL Server en Foros del Web. Estoy empesando con el tema de bloqueos en SQLserver2000 y tengo algunas dudas les pongo un ejemplo haber si me ayudan, habro 2 analizadores de ...
  #1 (permalink)  
Antiguo 09/11/2009, 12:40
 
Fecha de Ingreso: septiembre-2009
Mensajes: 73
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta rowlock y bloqueos en SQLserver2000

Estoy empesando con el tema de bloqueos en SQLserver2000 y tengo algunas dudas les pongo un ejemplo haber si me ayudan, habro 2 analizadores de consultas y realizo esto:

Código:
--user1:

BEGIN TRANSACTION 
SELECT * FROM cliente with(ROWLOCK) where idCliente='850'
--COMMIT -- No le aplico el commit para mantener bloqueado el cliente 850
Desde el segundo analizador de consulta intento eliminar el idCliente='850' pero se queda cargando hasta que le aplique el COMMIT al user1

Código:
--user2:

DELETE FROM cliente WHERE idCliente='850'
La pregunta es que como hago para que en user 2 aparesca un mensaje que me diga que dicho cliente esta haciendo una transaccion y q por eso no puedo eliminarlo o algo por estilo, la idea es que no es quede colgado esperando a que el user1 libere la fila.

Esto es solo un ejemplo.
  #2 (permalink)  
Antiguo 09/11/2009, 15:04
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: rowlock y bloqueos en SQLserver2000

Si deseas "Interaccion" con el segundo usuario (colgado), tendrias que implementar una columna de tipo BIT (0= Libre, 1 = Ocupado), en el que el primer usuario actualizara primero la columna y asi, podrias validar primero en que estado se encuentra tu registro.

Problema: Codificacion en tus store's y que el primero usuario deje el registro, sin actualizar hacia 0, siempre quedaria en uso.
  #3 (permalink)  
Antiguo 09/11/2009, 15:10
 
Fecha de Ingreso: septiembre-2009
Mensajes: 73
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: rowlock y bloqueos en SQLserver2000

Entonces debo crear otro campo tipo boolean en mi tabla cliente por ejmplo hacerle un update a 0 y 1 para bloqueado o desbloquearlo segun sea el caso.
Finalmente no me recomiendas utilizar los bloqueos de sqlserver2000?
  #4 (permalink)  
Antiguo 09/11/2009, 15:13
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: rowlock y bloqueos en SQLserver2000

Si, te recomiendo que los uses, pero tu quieres que el 2o usuario (3er, cuarto, quinto, etc.), "sepan" cuando el registro se esta ocupando.

La unica manera, es preguntar primero, mediante el store que recupera los datos, si el campo de "uso" esta en 1, OCUPADO, si esta en 0, ocuparlo (update) y "soltarlo" al final de hacer uso de dicho registro.
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 19:34.