Actualizar tabla compartida en red

Hola, soy nuevo en visual foxpro 9, quiero consultarte. Tengo un form de facturación y en el entorno de datos una tabla talaonarios.dbf donde guardo en el campo numero el ultimo nro de comprobante emitido. El problema es cuando 2 usuarios ingresan el mismo formulario el primero graba bien el valor de un text box (contiene el ultimo nº de factura generado) en la tabla talonarios.dbf, pero cuando el 2º usuario quiero grabar, aunque el valor del textbox es el correcto, no graba el valor en talonarios.dbf. Detallo el código que uso para grabar:
select talonarios
thisform.txtnumero.value = talonarios.numero + 1
if rlock()
replace talonarios.numero with thisform.txtnumero.value
unlock
endif
Agradecería me puedas brindar ayuda y gracias.

1 Respuesta

Respuesta
1
La forma más simple de solucionar ese problema es creando un campo AutoInc en la tabla de facturas que reemplazaría el uso de la tabla talonarios. Este campo se incrementa automáticamente cada vez que se crea un registro. Así no hay necesidad de estar actualizando tablas adicionales.
Si deseas mantener el código actual, debes tener en cuenta que al momento de tomar el numero de talonario, ambos usuarios tienen una misma imagen del registro, por lo tanto es necesario actualizar dicha imagen en caso de no poder bloquear el registro, ya que otro usuario lo esta actualizando. Seria algo así:
select talonarios
do while .t.
     if rlock()
        replace talonarios.numero with talonarios.numero + 1
        thisform.txtnumero.value = talonarios.numero
        unlock
        exit
    endif
enddo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas