BLOQUEOS

04/09/2003 - 13:40 por Keko | Informe spam
Hola, vereis tengo otra duda, con los bloqueos de ADO, ahora q ya me han
dicho como hacer recordset's desconectados (gracias ruben ;)), me
molaria saber como hacer lo siguiente:

Mi aplicacion es multipuesto, supongamos q un señor A abre el
registro R, y un señor B, borra el registro R, luego el señor A tira a
guardar sus supermodificaciones y se come una mier... porq lo ha
borrado, se puede bloque el registro cuando es editado y q el usuario B
no pueda editarlo hasta q se libere?, supongo q si, el problema es q no
se como, he mirado el Optimistic y el Pesimistic pero na de na...

Gracias por su tiempo

KEKO
 

Leer las respuestas

#1 Keko
04/09/2003 - 18:04 | Informe spam
Ok, qda claro, muchas gracias.

KEKO


SqlRanger escribió:
Sí que se puede, pero nada de cursores de cliente, y menos aún
desconectados. Habría que usar cursores de servidor con bloqueo
pesimista, los cursores de cliente no admiten este tipo de bloqueo. Pero
esto tiene muchos inconvenientes, como que dos usuarios no se podrían
"posicionar" en mismo registro porque los dos intentarían imponer un
bloqueo de actualización sobre el registro, y los bloqueos de
actualización son incompatibles entre sí, el último que llegara se
quedaría bloqueado esperando hasta que el primero se posicionara en otro
registro, el tiempo que se quedaría esperando es infinito de forma
predeterminada, lo que haría parecer que la aplicación está "colgada".
Esto se puede cambiar con SET LOCK_TIMEOUT con lo cual transcurrido el
tiempo establecido se recibiría un error de "tiempo de espera de bloqueo
excedido". Otros inconvenientes de los cursores de servidor son la poca
escalabilidad y rendimiento de los mismos.

Por todo esto te sugeriría que en la medida de lo posible te olvidaras
de los cursores de servidor y si el usuario ha modiicado un registro que
otro ha eliminado, pues qué le vamos ha hacer !! se lo decimos muy
amablemente y llamamos al método resync para que se elimine la copia local.


Saludos:

Jesús López
MVP Microsoft .NET

"No darás tropezón ni desatino que no te haga adelantar camino"

Preguntas similares