Bloquear registros

14/08/2004 - 17:30 por Samper Ricardo | Informe spam
Saludos
Tengo una base de datos en access y necesito bloquear un registro para que
cuando un usuario lo accesa nadie mas lo pueda accesar, alguien a hecho algo
parecido.

Gracias.
 

Leer las respuestas

#1 Carlos Durán Urenda
14/08/2004 - 18:52 | Informe spam
hola Ricardo

Segun lo que yo se, para trabajar en red, ADO .Net utiliza un modo
desconectado (modelo optimista), es decir, lees los datos y los colocas en
un dataset, pero una vez llenado el dataset, te desconectas de la fuente de
datos, esto debido a que normalmente el usuario se toma su tiempo durante la
edicion de datos, mantener la conexion abierta durante ese tiempo resulta
costoso para el servidor, de forma que el DataSet es un almacen de datos del
lado del usuario, donde este puede insertar, modificar y eliminar registros,
pero dichos cambios no se reflejan en el origen de datos hasta que se
ejecuta el Método Update del adaptador de datos, en ese momento se vuelve a
abrir la conexion y se intenta acutalizar el origen de datos.

Como se trabaja en modo desconectado es posible que mientras el usuario
editaba ciertos registros otro(s) usuario pudo haber accedido a el mismo
registro y modificarlo, eliminarlo o agregar un registro con el mismo campo
llave, entonces se produce un conflicto de actualizacion por la concurrencia
de varios usuarios, el segundo usuario que intente actualizar recibira un
error.

Tu codigo debe ser capaz de detectar tales conflictos y si es posible
solucionarlos (por ejemplo si ambos usuarios capturaron un nuevo registro
con exactamente la misma informacion, no seria necesario notificar del
error) e informar al usuario que registros fallaron en su actualizacion y
cuales fueron las causas.

Ahora bien, posiblemente efectues un proceso automatico que edite ciertos
datos, en cuyo caso seria conventiente trabajar en modo conectado, podrias
usar un campo en la base de datos que indique si el registro esta bloqueado,
y en la clausula SELECT que utilizan los demas procesos de edicion
establecer una condicion WHERE [Bloqueado] = False.

Te recomiendo consigas un libro que te guie en esto, a mi me han servido
estos dos libros

Programacion Avanzada con Microsoft Visual Basic.Net, de Francesco Balena,
Microsoft Press
y
Bases de Datos Con Microsoft Visaul Basic .Net de Francisco Charte Ojeda,
Ed. Anaya

tambien puesdes buscar articulos en la Red sobre ADO .Net

Saludos
Carlos Durán

"Samper Ricardo" escribió en el mensaje
news:
Saludos
Tengo una base de datos en access y necesito bloquear un registro para que
cuando un usuario lo accesa nadie mas lo pueda accesar, alguien a hecho


algo
parecido.

Gracias.


Preguntas similares