Ver Mensaje Individual
  #9  
Antiguo 22-07-2004
celades celades is offline
No confirmado
 
Registrado: may 2003
Ubicación: Torroella de Montgrí (Girona)
Posts: 42
Reputación: 0
celades Va por buen camino
Hola

Yo el tema de estocs lo resuelvo con una tabla temporal
Imaginemos que voy entrando lineas de albaran, al grabar la linea en Delphi lo que hago es grabar la linea en el temporal con otra transaccion y hago commit en la misma.
Con lo que si alguien consulta el estoc del articulo de la linea le muesto que quedan lo del estoc del articulo- todas las ventas del temporal +todas las compras del temporal con lo cual el estoc que muestro ( no el que tiene el registro del articulo ) siempre lo tengo actualizado al instante.
Si al final cancelo la entrada del albaran, simplemente borro las lineas del temporal con su transaccion y commit de la misma i rollback de la transaccion del albaran
Si al final valido el albaran hago commit de la transaccion del albaran
y anulo las lineas del temporal previo descuento del stoc del registro del articulo de la linea del temporal borrada i commit de su transaccion.

Espero haberme explicado pero yo es la manera que encontre de evitar deadlock sin hacer commit de la transaccion del albaran y a la vez evitar poder vender una unidat de estoc dos vendedores a la vez. Todo lo hago lanzando procedimientos adecuados pero la clave son las dos transacciones una en la que puedo hacer rollback y la otra con commits cada vez.

En fin cada uno se lo monta como puede, supongo que habra sistemas mas limpios, que este que es sui-generis mio.

Saludos
Responder Con Cita