Parte 4

 

Capítulo 26. Bases de datos multiusuario usando DAO.

 

Cuestionario del capítulo.

 

1.- Explique que es una base de datos multiusuario.

 

Es aquella que se tiene cuando un mismo almacén de datos es abierto por varias personas de manera concurrente para realizar labores de lectura y/o escritura.

 

2.- Explique la sintaxis de OpenDatabase para una base de datos multiusuario.

 

Sintaxis:

            OpenDatabase(Nombre, Compartido, SóloLectura)

 

Donde Nombre es el nombre del almacén de datos. Compartido es un argumento que especifica si el uso de la base de datos será compartido (True) o no (False). SóloLectura es un argumento que especifica si el uso de la base de datos será de sólo lectura (True) o no (False).

 

3.- Explique la sintaxis de OpenRecordset para una base de datos multiusuario.

 

Sintaxis:

            OpenRecordset(Nombre, TipoRecordset)

 

Donde Nombre es el nombre del campo de la base de datos que vinculará al objeto Recordset. TipoRecordset es el tipo de Recordset que esta definiendo; para nuestros intereses, deberá ser Table o Dynaset.

 

4.- Explique los 3 modos de bloqueo para el motor Jet.

 

 

5.- Explique en que consiste el bloqueo pesimista.

 

El motor de base de datos Jet bloquea la página que contiene el registro activo, tan pronto como se ejecuta el método Edit o AddNew, y no libera el bloqueo hasta que se ejecutan explícitamente (Update) o se cancelan los cambios (CancelUpdate) en el registro.  El bloqueo pesimista es el modo de bloqueo predeterminado para los objetos Recordset.

 

6.- Explique en que consiste el bloqueo optimista.

 

El motor bloquea la página sólo cuando intenta afectar el almacén de datos con el método Update. Puesto que el bloqueo sólo ocurre cuando la aplicación intenta realizar los cambios, se minimiza el tiempo que el bloqueo esta activo; esta es la mayor ventaja del bloqueo optimista.

 

7.- Explique como se efectúa el manejo de errores en modo multiusuario.

 

A diferencia de otros lenguajes, no cuenta con funciones que devuelvan un valor lógico que indique si un registro esta bloqueado (True) o no (False).

 

 

Esta ausencia nos mueve a buscar alternativas para poder manejar las cuestiones de bloqueo en nuestras aplicaciones, ya que si no manejamos dichas situaciones, se generarán errores con toda seguridad.

 

Esa seguridad que tenemos de que un manejo inadecuado de los bloqueos nos conduce al error, puede ser nuestra mayor ventaja, ya que a través de una buena rutina de errores podemos controlar lo que sucede en el programa.