FoxPro/Visual FoxPro - Unlock de varios registros

   
Vista:

Unlock de varios registros

Publicado por kong (681 intervenciones) el 27/10/2008 20:35:08
Por ejemplo:

.Si tengo 3 pcs trabajando sobre una misma tabla conectadas en red.
.con SET MULTILOCK ON

. la tabla se llama tabMesas
. campo1="1,2,3,4,5" , campo2="1,0,1,0,0"

. PC1 bloquea registro 2 (go 2, rlock())
. PC2 bloquea registro 4
. PC3 bloquea registro 1

. Que pasa al mandar UNLOCK IN tabMesas en la PC2?
-----Se quita el bloqueo solo en el registro 4?, o se quita todos los bloqueos?, o no quita ningun bloqueo?
. Como se puede saber?
-----Si efectivamente tuvo exito en desbloquear el registro?, Como saber si solo se ha desbloqueado aquel registro y no el resto?

DALE EXPERTOS.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Unlock de varios registros

Publicado por sergio (697 intervenciones) el 27/10/2008 21:04:23
solo un registro
sino utiliza flock() que bloquea toda la tabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Unlock de varios registros

Publicado por kong (681 intervenciones) el 27/10/2008 21:15:07
mi hermano, si se puede bloquear varios registros de una misma tabla, desde varias PCs concurrentes.
Lo que quiero esclarecer es como determinar que "si se logró desbloquear un registro determinado, y si se afectó a los otros o no"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Unlock de varios registros

Publicado por enrique (1041 intervenciones) el 27/10/2008 22:07:37
si SET MULTILOCK ON , te permite bloquear varios registros de una tabla al mismo tiempo desde el mismo equipo (no tiene que ver con la cantidad de equipos que compartan la tabla)
si SET MULTILOCK OFF, te permite bloquear un solo registro de una tabla y tu ejemplo funcionaria igual.
En ambos casos lo que falta es el RLOCK() que te bloquea el registro o registros
RLOCK() &&bloquea el registro donde esta parado el puntero
RLOCK('10') &&bloquea el registro 10 de la tabla
RLOCK('1,2,3,4', "tu_tabla") &&bloquea los cuatro primeros registros de la tabla "tu_tabla"

UNLOCK IN tabMesas && libera los registros que hayan sido bloqueados desde ese equipo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Unlock de varios registros

Publicado por kong (681 intervenciones) el 28/10/2008 10:44:33
hola foro.
..................
Otro vez disculpen mi torpeza.
.................
Ya solucioné el problema.
................
No es problema del SET REPROCESS, tampoco es del UNLOCK, es solamente una rutina que estuvo mal diseñada.
...............
Solamente para aclarar el asunto, les dejo constancia de algunos datos:

. Set reprocess define el tiempo y los intentos para las funciones de rlock y flock, y funciona perfectamente.
. Unlock libera del bloqueo todos los registros que la misma PC habría mandado a bloquear, y deja intactos al resto de los registros.
. En caso de no saber si estan bloqueados uno o varios registros, se utiliza la funcion ISRLOCK(). y para las tablas ISFLOCK()

...............

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar