Bloquear Registros

19/04/2005 - 23:54 por JESUS | Informe spam
Buenas, soy nuevo en este foro, la curiosidad que tengo es como puedo
bloquear un registro si lo voy a modificar para que otro usuario no lo pueda
modificar, pero otros si puedan ver la informacion, me explico, tengo lo que
se llama generar Orden de corte, pero cuando un usuario lo tenga que
modificar, otro no pueda modificar, pense en crear un campo al cual lo
cambio como 0 y 1 pero si el usuario sale imprudentemente o pierde conexion
por algun motivo, el valor queda en 1 provocandome problemas, quisiera saber
como bloquear registros, dejando que otros puedan ver la informacion que ya
esta, mas no modificarla, y si en algun motivo el usuario sale, que se
libere el registro o se desbloquee automaticamente, espero me puedan ayudar.


Jesus Aguilar

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
20/04/2005 - 01:12 | Informe spam
En SQL Server el bloqueo de registros es totalmente automágico, no debes
hacer nada.

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.



"JESUS" wrote in message news::

Buenas, soy nuevo en este foro, la curiosidad que tengo es como puedo
bloquear un registro si lo voy a modificar para que otro usuario no lo pueda
modificar, pero otros si puedan ver la informacion, me explico, tengo lo que
se llama generar Orden de corte, pero cuando un usuario lo tenga que
modificar, otro no pueda modificar, pense en crear un campo al cual lo
cambio como 0 y 1 pero si el usuario sale imprudentemente o pierde conexion
por algun motivo, el valor queda en 1 provocandome problemas, quisiera saber
como bloquear registros, dejando que otros puedan ver la informacion que ya
esta, mas no modificarla, y si en algun motivo el usuario sale, que se
libere el registro o se desbloquee automaticamente, espero me puedan ayudar.


Jesus Aguilar
Respuesta Responder a este mensaje
#2 Carlos Sacristán
20/04/2005 - 08:47 | Informe spam
Aún estando de acuerdo con Gustavo, hay que tener en cuenta que mientras
se está haciendo la actualización, el registro queda bloqueado y por tanto
ningún otro usuario va a poder modificarlo. Sin embargo tampoco va a poder
leerlo porque el bloqueo que se genera es exclusivo. Esto se soluciona
indicando que se quiere leer ese registro aún cuando la información que
recoja no esté confirmada (porque el bloqueo puede que siga existiendo). La
forma de hacerlo es indicando la sugerencia NOLOCK:

SELECT * FROM tabla WITH (NOLOCK) WHERE campoPK=1

De ese modo, si alguien estuviera haciendo

UPDATE tabla SET campo='valor' WHERE campoPK=1

cualquier conexión que no estuviera usando la sugerencia de bloqueo
indicada no podría leerlo hasta que no se confirmara la actualización.

De todos modos, ten en cuenta que los bloqueos están justamente para
evitar leer valores no confirmados, así que aunque puedas solucionar tu
problema, no te recomiendo actuar así


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"JESUS" escribió en el mensaje
news:
Buenas, soy nuevo en este foro, la curiosidad que tengo es como puedo
bloquear un registro si lo voy a modificar para que otro usuario no lo


pueda
modificar, pero otros si puedan ver la informacion, me explico, tengo lo


que
se llama generar Orden de corte, pero cuando un usuario lo tenga que
modificar, otro no pueda modificar, pense en crear un campo al cual lo
cambio como 0 y 1 pero si el usuario sale imprudentemente o pierde


conexion
por algun motivo, el valor queda en 1 provocandome problemas, quisiera


saber
como bloquear registros, dejando que otros puedan ver la informacion que


ya
esta, mas no modificarla, y si en algun motivo el usuario sale, que se
libere el registro o se desbloquee automaticamente, espero me puedan


ayudar.


Jesus Aguilar


Respuesta Responder a este mensaje
#3 JESUS
20/04/2005 - 15:28 | Informe spam
Ok, lo que quiero hacer es si un usuario jala la informacion de un documento
en pantalla, bloquear los registros para que sean de solo lectura, y cuando
el modifique todo en pantalla luego hara guardar, en ese tiempo quiero que
se bloqueen los registros porque ese mantenimiento lo hacen 3 personas y
puede que un momento los 3 jalen la informacion en pantalla, y como
resultado tendre la informacion del ultimo que guarde, por eso el que
obtenga primero la informacion bloqueara para que otros lo vean y no puedan
modificar, pense generar un campo bloqueo, con 1 y 0, y otro la maquina que
lo hizo, y cuando guarde, volver a 0 el valor, pero si salgo del sistema, el
campo no cambia de valor, espero me puedan ayudar en los puntos que
manifiesto.
Respuesta Responder a este mensaje
#4 Manuel Etcheto
20/04/2005 - 21:31 | Informe spam
Hola
Podrías generar un bloqueo con un Update previo (campo = campo) y mantener
la conexión abierta, pero eso te va a traer problemas
¿por qué antes de la modificación no verificas que los datos sean los mismos
que obtuvo antes, y si cambió no actualizar nada porque otro lo hizo en el
medio?
Es lo que hace .NET con el dataset por ejemplo

Si no, agregale un timestamp para verificar que está en el mismo estado
original

Suerte
Manuel



JESUS escribió en el mensaje de noticias

Ok, lo que quiero hacer es si un usuario jala la informacion de un


documento
en pantalla, bloquear los registros para que sean de solo lectura, y


cuando
el modifique todo en pantalla luego hara guardar, en ese tiempo quiero que
se bloqueen los registros porque ese mantenimiento lo hacen 3 personas y
puede que un momento los 3 jalen la informacion en pantalla, y como
resultado tendre la informacion del ultimo que guarde, por eso el que
obtenga primero la informacion bloqueara para que otros lo vean y no


puedan
modificar, pense generar un campo bloqueo, con 1 y 0, y otro la maquina


que
lo hizo, y cuando guarde, volver a 0 el valor, pero si salgo del sistema,


el
campo no cambia de valor, espero me puedan ayudar en los puntos que
manifiesto.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida