Ver Mensaje Individual
  #5  
Antiguo 24-10-2015
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Reputación: 21
ASAPLTDA Va por buen camino
descontar inventarios 10 Terminales

Hola, si entendi el problema radica si en 10 terminales se trata de descontar de una misma referencia de inventario al mismo tiempo.
Existen varios enfoques diferentes.
1. Bloqueo del registro para ser actualizado (pesimista) se usa SQL lock o se coloca en modo de ediccion el registro para que no lo puedan leer
2. Optmista se verfica el inventario leido contra el inventario antes actualizar, si es mismo se actualiza (esto lo hace automaticamente delphi ya usando un clientdataset delphi verifica el registro leeido contra el existente antes de lanzar un una actualizacion)
3. grabar un registro en una tabla de trabajo del registro que esta siendo actualizado , verificar este registro para revisar si esta siendo actualizado, grabar que esta siendo actualizado, liberar despues de actualizado

Nota (al mismo tiempo es concepto humano ya que existe un tiempo de computador mientras se procesa cada terminal y la base de datos procesar las peticiones por cola (esto es lo que creo)

Espero que te sirva esto de algo
Una prueba simplemente usa un dbgrid con una tabla 2 con actualizacion, 2 abre el mismo programa en un segundo terminal, 3. actualiza el datos en una terminal 4 actualiza el mismo registro en la segunda terminal y debe generar un error (registro cambiado ) revisa los eventos en caso de usar un tclientdataset)

saludes, y cuentanos sobre la soluccion que aplico o encontro
Responder Con Cita