Share via


SET REPROCESS (Comando)

Especifica cuántas veces o durante cuánto tiempo intenta Visual FoxPro bloquear un archivo o un registro después de que fracase un intento de bloqueo.

SET REPROCESS TO nAttempts [SECONDS] [SYSTEM] | TO AUTOMATIC [SYSTEM]

Parámetros

  • TO nAttempts [SECONDS]
    Especifica el número de veces que Visual FoxPro intenta bloquear un registro o un archivo después de un intento fracasado. El valor predeterminado es 0 y el valor máximo es 32.000.

    SECONDS especifica que Visual FoxPro intenta bloquear un archivo o registro durante nAttempts segundos. Solamente está disponible cuando nAttempts es mayor que cero.

    Por ejemplo, si nAttempts es 30, Visual FoxPro intentará bloquear un registro o archivo hasta 30 veces. Si también incluye SECONDS (SET REPROCESS TO 30 SECONDS), Visual FoxPro intentará bloquear continuamente un registro o archivo durante un máximo de 30 segundos.

    Aparece un mensaje del sistema (“Esperando bloqueo... ”) si SET STATUS está en ON.

    Si hay una rutina ON ERROR activa y fracasan los intentos realizados por el comando para bloquear el registro o archivo, se ejecutará la rutina ON ERROR. Sin embargo, si una función intenta establecer el bloqueo, no se ejecutará la rutina y la función devolverá falso (.F.).

    Si no hay ninguna rutina ON ERROR activa, un comando intenta bloquear el registro o archivo, y este bloqueo no se puede realizar, aparecerá una alerta adecuada (por ejemplo,“El registro está siendo utilizado por otra persona”). Si una función intenta realizar el bloqueo, la alerta no se mostrará y la función devolverá falso (.F.).

    Si nAttempts es 0 (el valor predeterminado) y ejecuta un comando o función que intenta bloquear un registro o archivo, Visual FoxPro intentará bloquear el registro o archivo indefinidamente. Visual FoxPro muestra el mensaje del sistema, “Intentando bloquear... Presione Esc para cancelar,” mientras intenta bloquear el registro o el archivo. El bloqueo se realiza y el mensaje del sistema se borra si el registro o el archivo llegan a estar disponibles para bloquearse mientras espera. Si una función intenta realizar el bloqueo, devolverá verdadero (.T.).

    Si presiona ESC en respuesta al mensaje del sistema, aparecerá una alerta adecuada (por ejemplo, “El registro está siendo utilizado por otra persona”). Si una función intenta realizar el bloqueo, la alerta no se mostrará y la función devolverá falso (.F.).

    Si hay una rutina ON ERROR activa y un comando intenta bloquear el registro o el archivo, la rutina ON ERROR tendrá preferencia sobre otros intentos para bloquear el registro o el archivo. La rutina ON ERROR se ejecuta inmediatamente. Visual FoxPro no intenta realizar bloqueos adicionales de registros ni de archivos, y no muestra el mensaje del sistema.

    Si nAttempts es –1, Visual FoxPro intentará bloquear el registro o archivo indefinidamente. No podrá cancelar los intentos de bloqueo presionando la tecla ESC y no se ejecutará ninguna rutina ON ERROR.

    Cuando nAttempts está establecido en –2, equivale a la utilización de la cláusula TO AUTOMATIC.

    Visual FoxPro solamente muestra el mensaje del sistema “Esperando bloqueo ... ” si SET STATUS está en ON.

    Si otro usuario ha establecido un bloqueo en el registro o archivo que intenta bloquear, deberá esperar hasta que el otro usuario libere el bloqueo.

  • TO AUTOMATIC
    Especifica que Visual FoxPro intenta bloquear indefinidamente el registro o el archivo (lo que equivale a establecer nAttempts en –2). Esta cláusula se parece al establecimiento de nAttempts a -1, excepto porque incluye la posibilidad de salir del intento de bloquear un registro o un archivo.

    El mensaje del sistema “Intentando bloquear... Presione Esc para cancelar” aparece mientras Visual FoxPro intenta bloquear el registro o archivo. El bloqueo se realiza y el mensaje del sistema se borra si el registro o el archivo llegan a estar disponibles para bloquearse mientras espera. Si se utiliza una función para establecer el bloqueo, la función devolverá verdadero (.T.).

    Si no hay una rutina ON ERROR activa y presiona ESC en respuesta al mensaje del sistema, se mostrará la alerta apropiada (por ejemplo, “El registro está siendo utilizado por otra persona”). Si una función intenta realizar el bloqueo, la alerta no se mostrará y la función devolverá falso (.F.).

    Si una rutina ON ERROR está activa y presiona ESC, se ejecutará la rutina ON ERROR. Si una función intenta establecer el bloqueo, no se ejecutará la rutina ON ERROR y la función devolverá falso (.F.).

  • SYSTEM
    Especifica que SET REPROCESS se aplica a la sesión de datos del sistema, que controla las tablas utilizadas internamente, como una base de datos, FOXUSER, archivos .scx, etc.

    Para obtener más información acerca del bloqueo de registros y archivos, así como del uso compartido de tablas en una red, vea Programar para acceso compartido.

Observaciones

Un bloqueo de registro o de archivo no siempre se consigue en el primer intento. Con frecuencia, un registro o archivo está bloqueado por otro usuario de la red. SET REPROCESS determina si Visual FoxPro debe realizar más intentos de bloquear el registro o archivo cuando fracasa el primer intento. Puede especificar cuántos intentos más se harán o durante cuánto tiempo se intentará. Una rutina ON ERROR afecta a cómo se controlan los intentos de bloqueo fracasados.

SET REPROCESS tiene como alcance la sesión actual de datos. SET REPROCESS SYSTEM tiene como alcance la sesión de datos del sistema.

Nota   Los cambios realizados en la ficha Datos del cuadro de diálogo Opciones de herramientas sólo afectan a la sesión actual.

Ejemplo

SET ("REPROCESS")      && Returns the current session setting
SET("REPROCESS",1)   && Returns the system session setting

* In the config.fpw file, the following code changes the default session.
REPROCESS = 100

Vea también

FLOCK( ) | SET DATASESSION | Programar para acceso compartido