Problema al generar consecutivos en red en una vas

Hola !
Tengo VB6 y una base de SQL y tengo un procedimiento almacenado que se encarga de devolverme un consecutivo al momento de generar el alta de un registro, el procedimiento contiene lo siguiente:
update tabla set folio_cliente = folio_cliente + 1
select folio_cliente from tabla
funciona perfectamente, lo uso por si varios usuarios en red intentan grabar al mismo tiempo, no tenga ningun problema.
Mi problema es el siguiente: Requiero ahora que mi aplicación se pueda trabajar tanto con SQL como con una base de ACCESS, pero como hasta donde yo se access no tiene procedimientos almacenados, necesito ejecutar una sentencia que de un solo golpe me actualice la tabla sumándole uno al consecutivo y que también me devuelva el nuevo consecutivo como si ejecutara el procedimiento almacenado de sql. O no se si alguien tenga otra idea o lo maneje de forma diferente que me aporte su idea.
Espero puedan ayudarme con esto, ya que he intentado juntar las sentencias sql pero me manda error al tratarlas de ejecutar.
Estoy conectando mediante ADODB. Recordset
Gracias de antemano y saludos!

1 respuesta

Respuesta
1
Utiliza una transacción del objeto conexión a tu base de datos y ahí le puedes indicar cuantas sentencias quieras, después simplemente le das un commit, y cierras la transacción con esto ningún usuario puede generar el mismo número consecutivo, pero recuerda que debe de ser entrar, usar y salir, no quedarse dentro para siempre...
Gracias!
¿Sera qué puedo tener problemas de concurrencia si muchos usuarios a la vez tratan de tomar el folio? Digamos que 50 usuarios coinciden, ¿no me mandara error?
gracaisn nuevamente, espero tu comentario
No lo creo, porque uno de los sistemas que tengo implementados de la forma comentada, tiene por lo menos 850 usuarios concurrentes, que todos pueden insertar al mismo tiempo...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas