La Web del Programador: Comunidad de Programadores
 
    Pregunta:  45682 - DUDA SOBRE CONCURRENCIA EN UNA BD PARADOX
Autor:  antonio sanchez
Estoy empezando a desarrollar un sistema de facturacion, cobranza, inventarios... estoy utilizando Delphi 7.0 y BDE-Paradox, y tengo una duda, mi pregunta es sobre la siguiente situación:

El sistema es en red, el detalle es, como puedo resolver el problema de concurrencia en los numeros de folio de la factura, es decir, los folios se van incrementando en uno, cada vez que se va a hacer una nueva factura, si un usuario empieza a hacer una factura le corresponde un número, por ejemplo el 10, si otro usuario en otra PC entra casi al mismo tiempo le tocará el folio 11, que pasa si el usuario de la factura 10 decide cancelar la elaboración de la factura? que pasará con el folio? deberé releer el folio para que la que era la numero 11 sea la número 10? existe una mejor manera de solucionar esto? claro, sin el uso de una BD Cliente/Servidor ni de transacciones.

  Respuesta:  Alejandro Bovone
A mi entender te conviene utilizar campos autoincrementables, si queres tener el control de la numeración te conviene obtener el número en el momento de la grabación del comprobante.

En el beforepost de la tabla coloca el código necesario para obtener un nuevo número de folio.

De todas formas te recomiendo que cambies a otro sistema de base de datos por ejemplo firebird, te vas a evitar un montón de problemas.