buenos dias, estoy teniendo que hacer una aplicacion que van a usar varios
clientes al mismo tiempo, y la base de datos esta montada sobre un sql server
2000.
El sql debe devolver a la aplicacion un registro para que el cliente lo
utilice, la aplicacion cliente lo unico que hace es "pedir" un nuevo
registro. El problema creo que lo voy a tener con los lockeos, porque debo
asegurarme de que 2 clientes no vayan a recuperar el mismo registro por
ejemplo. Lo que pense es poner en la tabla de registros un bit que indique si
esa fila esta en uso o no. Para esto, en el stored procedure que devuelve el
registro, hago lo siguiente:
primero: selecciono un registro que este en la fecha de hoy
segundo: actualizo ese registro para poner que esta siendo usado, por X
usuario
tercero: hago otro select mas sobre este registro presiso que se recupero,
para obtener datos que necesito trabajar en el stored procedure, antes de
devolverle todo al cliente.
Lo que necesitaria yo es que todos esos pasos se ejecuten atomicamente, que
cuando yo voy a hacer el update para poner el registro en uso, otro cliente
no pueda hacer un select sobre ese registro y me estoy mareando un poco
con locks porque soy nuevo en esto. He leido que se puede hacer un lock a
nivel de fila, pero no me queda claro la duracion del mismo, si dura lo que
dura ese "select" especifico o si dura lo que dura todo el stored procedure.
bueno cualqueir ayuda se agradece.
salu2
Leer las respuestas