Hola a tod@s,
Estoy trabajando con interbase 7 y delphi 6.
Tengo un programa que, entre otras cosas, gestiona pagos. tengo que hacer que al realizarse uno nuevo, se le asigne un nuevo número de recibo o factura a dicho pago. Para ello tengo, una tabla con un campo donde se guarda el último número de recibo asignado a un pago. Desde delphi lo que hago, es copiar ese valor en una variable, añadirle 1, al último valor asignado, y copiar el nuevo valor en dicho campo, de modo que la siguiente vez que alguien vaya a realizar un pago, obtenga el número de recibo inmediatamente superior.
El problema es que, este programa lo están usando varias personas a la vez, desde varios puestos distintos, de modo que, cuando 2 o más realizan ese proceso a un mismo tiempo, toman el mismo número de recibo, para dos pagos distintos, con lo que eso conlleba.
El código que tengo para esto es:
Cita:
cRecibo := FrmDModule.TbEmpresasNUMRECIBO.Value;
cAuxRecibo := '0000000' + inttostr(strtoint(Copy(cRecibo, 4, 7)) + 1);
cAuxRecibo := Copy(cAuxRecibo, length(cAuxRecibo)-6, 7 );
FrmDModule.TbEmpresas.Edit;
FrmDModule.TbEmpresasNUMRECIBO.Value := Copy(cRecibo, 1, 3) +
cAuxRecibo;
FrmDModule.TbEmpresas.Post;
FrmDModule.TbEmpresas.Refresh;
|
¿Alguna idea?, ¿alguna forma de hacer esperar a alguno de ellos hasta que el otro termine?
Por cierto, como tiene que tener también letras no puede ser un campo autoincremental.
Gracias por todo de antemano,
Virginia