
accesos concurrentes en vfp y sql
Publicado por Berni (4 intervenciones) el 02/11/2008 14:29:23
Trato de simplificar mi duda y planteo.
Entorno : vfp9, ms sqlserver2000, varios clientes accediendo a la misma
base de dato de ms sqlserver2000.
prg. de juan, prg. de pedro, ... prog de N en una red local
leyedon y actualizando dato de Stock
Inicialmente en stock hay 50 cocacolas.
Planteo es: en un momento concurrente juan vende 10, pedro vende 5 cocacolas.
ESTOS dos procesos separados en tiempo diferido serian:
Juan lee dato de base cocacola 50 y vende 10 y actualiza base con 40.
Pedro lee dato de base cocacola 40 y vende 5 y actualiza base con 35.
El valor final debe ser 35.
Pero,
SI estos dos procesos occuren en forma concurrente van a ser confusos y caoticos.
Juan lee 50 / Pedro lee 50 / Juan vende 10 y actualiza con 40 / Pedro vende 5 actualiza con 45
El valor final es 45. ===> es INCONSISTENTE !!!
Aplicando : Sqlstringconnect("....") / SQLExec( .."SELECT...."..) / SQLExec( .."UPDATE...."..)
pude esta situacion confuso.
Por favor le pido su ayuda.
Muchas Gracias.
Entorno : vfp9, ms sqlserver2000, varios clientes accediendo a la misma
base de dato de ms sqlserver2000.
prg. de juan, prg. de pedro, ... prog de N en una red local
leyedon y actualizando dato de Stock
Inicialmente en stock hay 50 cocacolas.
Planteo es: en un momento concurrente juan vende 10, pedro vende 5 cocacolas.
ESTOS dos procesos separados en tiempo diferido serian:
Juan lee dato de base cocacola 50 y vende 10 y actualiza base con 40.
Pedro lee dato de base cocacola 40 y vende 5 y actualiza base con 35.
El valor final debe ser 35.
Pero,
SI estos dos procesos occuren en forma concurrente van a ser confusos y caoticos.
Juan lee 50 / Pedro lee 50 / Juan vende 10 y actualiza con 40 / Pedro vende 5 actualiza con 45
El valor final es 45. ===> es INCONSISTENTE !!!
Aplicando : Sqlstringconnect("....") / SQLExec( .."SELECT...."..) / SQLExec( .."UPDATE...."..)
pude esta situacion confuso.
Por favor le pido su ayuda.
Muchas Gracias.
Valora esta pregunta


0