consulta de novato

30/09/2009 - 13:47 por Pablo Nogues | Informe spam
Buenos días. Soy nuevo en .net y no sé como se soluciona el siguiente
problema que tengo:

1- de mi db genero un objeto producto ( hago un select de la tabla
productosy genero un objeto a traves de mi clase producto)
2- dos clientes obtienen el mismo producto
3- el cliente A actualiza el saldo y hace update del producto
4- el cliente B actualiza el saldo y hace update

obvieamente el cliente B tiene info del saldo "incorrecta" dado que el
cliente A ya actualizó el saldo.


Sé que esto es cotidiano en app, pero soy novato y no sé como solucionarlo.

Me podrían hechar una mano de cómo lo hacen uds. hoy día.
Agradeceré ademas links o documentos relacionados a este tema,

muchas gracias!!
 

Leer las respuestas

#1 Alberto Poblacion
30/09/2009 - 14:11 | Informe spam
"Pablo Nogues" wrote in message
news:%
Buenos días. Soy nuevo en .net y no sé como se soluciona el siguiente
problema que tengo:

1- de mi db genero un objeto producto ( hago un select de la tabla
productosy genero un objeto a traves de mi clase producto)
2- dos clientes obtienen el mismo producto
3- el cliente A actualiza el saldo y hace update del producto
4- el cliente B actualiza el saldo y hace update

obvieamente el cliente B tiene info del saldo "incorrecta" dado que el
cliente A ya actualizó el saldo.

Sé que esto es cotidiano en app, pero soy novato y no sé como
solucionarlo.



Existen dos enfoques alternativos: concurrencia optimista y concurrencia
pesimista.
Con la optimista, primero se leen los datos, luego se trabaja con ellos,
y al irlos a grabar, se comprueba primero si lo que hay en la base de datos
coincide con lo que se leyó originalmente. Si no coincide, se muestra un
mensaje de error al usuario, o se corrige el valor automáticamente si se
puede (como en el ejemplo del saldo que mencionas).
Con la concurrencia pesimista, se utiliza algún mecanismo de bloqueo,
por ejemplo, se añade al registro un campo boleano y se pone a true cuando
se lee el registro para trabajar con él. Si mientras tanto alguien más
quiere modificar el registro, se le muestra un mensaje diciendo que no se
puede porque está en uso en ese momento.

Preguntas similares