Compartir a través de


Controlar el acceso a datos

Puesto que los datos se encuentran en los archivos, la administración eficaz de los datos comienza con el control del entorno de estos archivos. Debe elegir cómo tener acceso a los datos y cómo y cuándo limitar ese acceso.

Acceso a datos

En un entorno compartido, hay dos formas de tener acceso a datos: desde archivos exclusivos o desde archivos compartidos. Si abre una tabla para acceso compartido, otros usuarios también tendrán acceso al archivo. Si abre una tabla para acceso exclusivo, ningún otro usuario podrá leer o escribir en ese archivo. Puesto que el uso exclusivo elimina muchas de las ventajas que implica compartir datos en una red, deberá hacerse un uso comedido de esta característica.

Usar tablas con acceso exclusivo

La forma más restrictiva de abrir un archivo consiste en abrirlo de forma exclusiva. Cuando abra una tabla a través de la interfaz, se abrirá para uso exclusivo de forma predeterminada. También puede abrir explícitamente una tabla para uso exclusivo mediante comandos de Visual FoxPro.

Para abrir una tabla para uso exclusivo

  • Escriba los siguientes comandos en la ventana Comandos:

    SET EXCLUSIVE ON
    USE cMyTable
    

    –O bien–

  • Escriba el siguiente comando en la ventana Comandos:

    USE cMyTable EXCLUSIVE
    

Los comandos siguientes requieren que abra una tabla para uso exclusivo:

  • ALTER TABLE
  • INDEX al crear, agregar o eliminar una etiqueta de índice compuesto.
  • INSERT [BLANK]
  • MODIFY STRUCTURE: si utiliza este comando para cambiar la estructura de una tabla, deberá abrir la tabla de forma exclusiva. Sin embargo, podrá utilizar este comando en modo de sólo lectura cuando abra la tabla para uso compartido.
  • PACK
  • REINDEX
  • ZAP

Visual FoxPro devolverá el error "Se requiere apertura exclusiva del archivo" si intenta ejecutar uno de estos comandos en una tabla compartida.

Puede restringir el acceso a una tabla mediante la función FLOCK( ). Si utiliza FLOCK( ) para bloquear la tabla, los demás usuarios no podrán escribir en ella, aunque sí podrán leerla.

Usar tablas con acceso compartido

Cuando abra una tabla para uso compartido, varias estaciones de trabajo podrán utilizar la misma tabla a la vez. Cuando abra una tabla a través de la interfaz, podrá anular la configuración predeterminada ON de SET EXCLUSIVE. Puede abrir explícitamente una tabla para uso compartido mediante los comandos de Visual FoxPro.

Para abrir una tabla para uso compartido

  • Escriba los siguientes comandos en la ventana Comandos:

    SET EXCLUSIVE OFF
    USE cMyTable
    

    –O bien–

  • Escriba el siguiente comando en la ventana Comandos:

    USE cMyTable SHARED
    

Cuando agregue o cambie datos en una tabla compartida, en primer lugar deberá bloquear el registro afectado o toda la tabla. Hay varias formas de bloquear un registro o una tabla abierta para uso compartido:

  • Utilice un comando que realice un bloqueo automático de registro o tabla.
  • Bloquee manualmente uno o varios registros, o una tabla completa, mediante las funciones de bloqueo de registro o de tabla.
  • Inicie el almacenamiento en búfer con la función CURSORSETPROP( ).

Los archivos memo y de índice asociados siempre se abren con el mismo estado compartido que su tabla.

Si la aplicación sólo utiliza una tabla con fines de consulta y todos los usuarios de la aplicación tienen acceso a la misma, podrá mejorar el rendimiento de la tabla si la marca como de sólo lectura.

Vea también

Programar para acceso compartido | Bloquear datos | ALTER TABLE | INDEX | INSERT [BLANK] | MODIFY STRUCTURE | Usar sesiones de datos | Almacenar datos en búfer