Programar para multiusuario

Hola experto, estoy desarrollando un sistema para un Corralon que tiene varios vendedores y necesito saber si tengo que usar los comandos tableupdate() y tablerevert() en todas las tablas que use para realizar la facturación (tabla compras, compras_a, detalle_factura, artículos, etc.) .Este es una parte de mi código, ¿esto se hace o usa así? ¿O solamente debo utilizar tableupdate y tablerevert en algunas partes especiales?, aquí va parte del código:
*aqui genero un nº de factura dependiendo el tipo de factura A o B
IF tipo_f="B"
   SET MULTILOCKS ON
   CURSORSETPROP("Buffering",3,"compras")
   SELECT compras
   SET DELETED OFF
   SET ORDER TO NRO_FACT && NRO_FACT
   GO BOTTOM
   IF nro_fact=0
     nf=inicial
   ELSE
     nf=nro_fact + 1
   ENDIF
ELSE
   SET MULTILOCKS ON
   CURSORSETPROP("Buffering",3,"compras_a")
   SELECT compras_a
   SET DELETED OFF
   SET ORDER TO NRO_FACT && NRO_FACT
   GO BOTTOM
   IF nro_fact=0
      nf=inicial_a
   ELSE
      nf=nro_fact + 1
   ENDIF
ENDIF
*guardo los datos de la factura A o B
SET DELETED ON
APPEND BLANK
replace nro_fact WITH nf
replace num_emple WITH n_vendedor
replace num_cli WITH cliente_actual
replace fecha_compra WITH fe
replace hora WITH TIME()
replace desc_gral WITH p_dgral
replace observaciones WITH obs
replace total WITH thisform.text7.Value
IF tipo_f="A"
replace tipo WITH 1
ELSE
replace tipo WITH 2
ENDIF
TABLEUPDATE(.T.)
*guardo el detalle de la factura A o B  (temp es un cursor que guarda el detalle de la factua)
SELECT temp
SCAN
    ar=id_art
   c=cant_temp
   di=descuento
   p=precio
   IF tipo_f="B"
      SET MULTILOCKS ON
      CURSORSETPROP("Buffering",3,"detalle_factura")
      SELECT detalle_factura
    ELSE
       SET MULTILOCKS ON
       CURSORSETPROP("Buffering",3,"detalle_factura_a")
       SELECT detalle_factura_a
     ENDIF
APPEND BLANK
replace cod_art WITH ar
replace cant WITH c
replace nro_fact WITH nf
replace desc_item WITH di
replace precio WITH p
TABLEUPDATE(.T.)
*resto de stock los articulos
SET MULTILOCKS ON
CURSORSETPROP("Buffering",3,"articulos")
SELECT articulos
SET FILTER TO
LOCATE for cod_art=ar
can=cantidad
replace cantidad WITH (can - c)
Tableupdate(.t.)
Endscan
Perdón por lo extenso pero necesito terminar cuanto antes este sistema y agradecería mucho que me puedas orientar al respecto

1 Respuesta

Respuesta
1
Los comandos tableupdate() y tablerevert() los debes utilizar en el momento que desees guardar o cancelar no tiene más lógica, sino los cambios que hagas no se harán efectivo en la base de datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas