Visual FoxPro.NET - Fallas en el uso de la funcion LOCK

   
Vista:

Fallas en el uso de la funcion LOCK

Publicado por Ruben (1 intervención) el 21/10/2011 13:59:11
Buen día,
Hace varios años tengo una aplicación hecha en visual fox 6.0 que funciona relativamente sin problemas. El tema es que ahora me comentan que repite un numero de matricula cuando estoy dando de alta personas. El form de alta de personas trabaja de la siguiente manera: se cargan los datos y en el momento de grabar le asigna el número de matricula (hace un lock sobre la tabla para tomar el último numero de matricula y le suma uno). Luego de grabar elimina el bloqueo.
Estan dando de alta personas desde 2 o 3 pc al mismo tiempo. Esto que debería funcionar bien ahora después de un tiempo me esta dando problemas. ¿hay algo que pueda hacer que el bloqueo no este funcionando bien? ¿que puede estar pasando?

Desde ya muchas gracias por cualquier aporte que me puedan dar.
Saludos.
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

Fallas en el uso de la funcion LOCK

Publicado por santiago (3 intervenciones) el 06/06/2012 03:07:32
Hola, el LOCK esta bien, lo que esta fallando (me parece), es tu forma de generar el numero de matricula; si tienes varios usuarios y supongamos que 2 de ellos van a inscribir al mismo tiempo, ambos leeran el mismo ultimo numero, por consiguiente ambos grabaran el mismo numero+1, creo que antes de grabar debes consistenciar el numero, por ejemplo si tomaste el numero 1000 entonces tu nuevo numero seria el 1001, entonces antes de grabarlo consistencias la existencia del 1001, si ya existe (porque otro usuario ya lo grabo) entonces le sumas 1 (1002) y vuelves a consistenciar hasta que te de como respuesta "numero libre", y al grabarlo siempre con el LOCK

Suerte
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