none
Como resolver problema de concurrencia en visual basic 2010 y bd access RRS feed

  • Pregunta

  • <header>Simon Camacho
    </header>

    Como tratariamos el tema a traves de oledb y escenario conectado a traves de access y visual basic 2010 sobre todo por ejemplo en un momento de una facturacion un usuario pide 5 producto y al mismo tiempo otro pide 6 del mismo y hay 10 en almacen. Por supuesto al un usuario actualizaria primero y el otro quedaria con menos existencia y daria negativo la actualizacion del inventario. ejemplo 10-5=5 y el otro quedarian 5 menos 6 daria negativo, (y pasa el control de cantidad en existencia porque ambos leyeron que quedaban 10 producto). Como podria resolverse. Gracias

    viernes, 25 de enero de 2013 12:40

Todas las respuestas

  • El tema de concurrencia es complejo y en general nunca recomiendo el uso de bases de datos Access habiendo cosas mejores como SQL Server Express, especialmente para ambientes multiusuario.

    En general la concurrencia se resuelve con bloqueos y transacciones, al menos en SQL Server.  No recuerdo si MS Access tiene la capacidad -creo que no la tiene-.

    En SQL Server uno puede bloquear la tabla en una transacción durante la consulta (para determinar si hay suficiente inventario) o bien puede cambiar el ISOLATION LEVEL a SERIALIZABLE, que es algo muy parecido, también dentro de una transacción.  De esta forma los registros consultados durante el SELECT quedan bloqueados hasta el final de la transacción en donde ya se ha hecho el descuento o bien no se hizo nada porque no hay inventario suficiente.


    Jose R. MCP
    Code Samples

    domingo, 27 de enero de 2013 16:44
    Moderador