Consecutivos en red

Tengo la siguiente situación:
Deseo generar en una aplicación en red, una rutina para obtener un consecutivo. Para ello tengo una tabla en donde está el registro con el siguiente folio disponible. Cada vez que alguien necesita uno, va y toma el valor disponible, y lo incrementa para dejarlo disponible a la siguiente petición.
El problema es el siguiente: En la aplicación que tomará el folio, se hace la solicitud del mismo antes de capturar los datos complementarios, pero si decide el usuario abortar la captura, debe "regresar" el folio para no "quemarlo" sin usarlo. Es decir, debe haber un "ámbito de transacción". Lo de menos es bloquear la tabla para que nadie más haga uso de "otro" folio mientras uno trabaja, y así asegurarme que podré "regresar" un folio si no lo necesito. Pero ello no me permite hacer dos capturas a la vez, rompiendo el espíritu de un proceso concurrente
¿Sabes de algún algoritmo para solucionar esto?
Espero haberme explicado y gracias.
Gustavo

1 respuesta

Respuesta
1
Abrir una transacción, buscar el folio máximo más uno en ese momento en la tabla donde se guardan los datos, grabar los datos y cerrar la transacción.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas