Problema con el Flock() Rlock() y Lock() VFP 9.0

Tengo un sistema ya creado en vfp y este me funciona perfectamente en red, mi problema es que necesito bloquar una tabla y mientras esa tabla se encuentre bloqueada ningún otro usuario puede seguir con el procedimiento hasta que el usuario que la esta utilizanfo llegue al comando unlock(), luego el siguiente usuario bloquea la tabla y así sucesivamente hastsa que todos terminan.
Mi problema es principalmente debido a que cuando creo unos registros, estos tienen un numero que debe de ser único y que incremente en 1 según se van generando estos registros. Pero la secuencia de estos números no se encuentra en un autonumérico ya que esa información también las salvo en otras tablas y necesito que en ambas tablas el registro de números sean consecutivos, entonces para ambas tablas utilizo el valor que tiene ese momento la tabla que tiene el numero que corresponde.
El problema es que cuando más de 1 usuario esta trabajando en el sistema, este numero se me duplica en ambas tablas al igual que en la misma tabla que se salva. He utilizado todos los lock que conozco y no he dado con la solución. ¿Alguien me puede ayudar con esto?. Si no entienden algo me pueden preguntar.

1 Respuesta

Respuesta
1
Creo que ya respondí esa pregunta, la idea no es que mantengas bloqueada la tabla sino más bien que no la tenga bloqueada y que el contador o secuencia numérica que la tienes en otra tabla solo la uses el en momento que vas a grabar el documento solo ahí debes bloquear la tabla o el registro para que obtengas un numero de secuencia único, lo guardas en una variable de memoria y desbloqueas la tabla del contador luego sigues el proceso de grabar pero ya con el numero único en una variable de memoria, y eso va ha pasar con todos los usuarios que entren al sistema
Por favor amigo finaliza la pregunta gracias
Disculpa que no había visto antes la respuesta, de todas formas gracias, ya solucione mi problema, lo que hice al final fue realizar el proceso de actualización de los números lo más rapido posible, así evitando lo mayor posible que otro usuario tome el mismo numero pues ahora, el usuario toma el numero, actualiza al siguiente y por ultimo actulizo tabla, o mejor dicho, en este caso eran vistas :P. De todas formas muchas gracias :D

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas