Creación de Aplicaciones multiusuario – 1

Anuncio
Creación de Aplicaciones multiusuario – 4
Control del bloqueo de registros
Puesto que en una Base de Datos multiusuarios se va a originar que varios usuarios
puedan acceder simultáneamente a la base de datos y posiblemente en algunos momentos
varios usuarios traten de actualizar un registro en el mismo momento, Access deberá saber
qué cambio debe aceptar. Para ello Access emplea todo un sistema de control del bloqueo de
registros.
El bloqueo por página que utiliza Access crea un bloque de 2048 bytes (2k) de
longitud. En este bloque almacena los datos de uno o varios registros, según su tamaño. Las
páginas pueden contener varios registros o un solo registro puede ocupar varias páginas.
Cuando se activa el bloqueo de registros por página se bloquean todos los registros contenidos
en ella. Si la base de datos contiene cierto número de pequeños registros es posible que un
usuario que edite un registro, puede impedir (bloquear) que otros usuarios editen otros
muchos registros.
El cuadro de diálogo Opciones permite establecer las opciones multiusuario, así como
otras opciones.
Bloqueo predeterminado de registros
Las opciones de la sección bloqueo predeterminado de registros establecen el modo
que por defecto Access realizará el bloqueo de registros. Las opciones son: Sin bloquear
(predeterminado), Todos los registros y Registro modificado

Modo de bloqueo Sin bloquear.
Este modo se denomina modo de bloqueo optimista porque el bloqueo solo se
lleva a cabo en el momento en que se realiza la actualización de un registro,
y tan solo causará error si el mismo registro es modificado por dos personas
distintas al mismo tiempo.

Modo de bloqueo Todos los registros.
Al utilizar este método de bloqueo, en esencia se estarán bloqueando todos
los registros de un recordset. Esto significa que otros usuarios que intenten
acceder a esos mismos registros únicamente podrán leerlos pero no podrán
actualizarlos. Al elegir ésta opción además, impide que otros usuarios puedan
añadir o borrar registros.

Modo de bloqueo Registro modificado.
Este modo se denomina bloqueo pesimista. Bloquea la página en cuanto se
empiece a editar un registro.
Uno de los puntos a favor que tiene este modo de bloqueo es que garantiza
que solo un usuario estará modificando el registro en un momento dado. En
cuanto presione una tecla para modificar el registro, la página de registros
donde éste se halla será bloqueada.
La parte negativa es que como Access utiliza el bloqueo por página, es posible
que otros registros que quieran modificar otros usuarios los encuentren
bloqueados, aun cuando nadie esté en realidad modificándolos.
Utilizar el modo de bloqueo optimista, modo de bloque Sin bloquear, es el mejor
desde el punto de vista del rendimiento ya que un desconcertante conflicto de escritura solo
le aparecerá al usuario cuando dos usuarios editen el mismo registro e intenten actualizarlo al
mismo tiempo.
Aunque elegir una de éstas opciones para toda la aplicación puede ser suficiente, un
buen desarrollador debe tener en cuenta cada momento, cada circunstancia que puedan
provocar los usuarios y utilizar el bloqueo a nivel de los formularios independientes.
Para ello, tendremos que disponer de formularios sin origen del registro. Cuando el
usuario rellena los campos, no está actualizando nada, ya que el formulario no depende de
ninguna tabla. Una vez que haya actualizado todos los campos, tendremos un botón Guardar,
que mediante código va pasando los valores y finalmente se agrega un registro a la tabla.
Este sistema, sin duda es relativamente costoso a la hora de programar, pero
absolutamente efectivo en cuanto a rendimiento de la base de datos. Con todo, las funciones
que se generan al hacer el primer formulario sirven de plantilla para otros formularios, por lo
que la tarea no va a resultar tan complicada.
En el cuadro de Opciones tenemos dos valores que podemos manejar:

Intervalo de actualización

Numero de intentos de actualización
Si un usuario intenta actualizar un registro bloqueado, access espera el tiempo
especificado y trata de actualizarlo el número de veces indicado. Si la aplicación va a tener
ediciones rápidas de registros se pueden manejar éstos valores para mejorar el rendimiento
del bloqueo de registros.
Si utilizamos el método de bloqueo Sin bloquear es posible que el intervalo y numeros
de actualización sean insuficientes. Podemos reducir el intervalo y aumentar el número de
intentos.
El intervalo de actualizaciones es el tiempo que Access espera antes de buscar un
conjunto de registros de un formulario o tabla abiertos y luego actualizar y mostrar los datos
modificados. Por ejemplo, cuando dos usuarios abren un formulario en el mismo registro, si
uno aplica y guarda los cambios en el registro, la pantalla del otro usuario se actualiza en el
intervalo especificado para reflejar los cambios.
En cualquier caso, dado que cada aplicación difiere de otra, es conveniente ir
probando éstos valores hasta conseguir los más óptimos para cada aplicación.
Descargar