Ver Mensaje Individual
  #1  
Antiguo 15-04-2004
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Reputación: 22
Giniromero Va por buen camino
IB problemas por acceso simultaneo al mismo campo

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
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita