2P Proyecto Biblioteca

1. FORMULARIO DE REGISTRO DE LECTORES…..

2. FORMULARIO DE REGISTRO DE BIBLIOTECARIOS

3. FORMULARIO DE FICHA DE PRESTAMOS

4. FORMULARIO DE DEVOLUCIONES DE LIBROS

5. EJEMPLO DE MENU PRINCIPAL

********************************************************************

AQUI ESTA EL EJEMPLO DE BUFFER…. BAJENLO E IMPRIMANLO

EJEMPLO DE BUFFER

*******************************************************************

(Comando) Alcance del bloqueo
ALTER TABLE Toda la tabla
APPEND Encabezado de la tabla
APPEND Encabezado de la tabla
APPEND FROM Encabezado de la tabla
APPEND FROM ARRAY Encabezado de la tabla
APPEND MEMO Registro activo
BLANK Registro activo
BROWSE, CHANGE y EDIT Registro actual y todos los registros de campos con alias de tablas relacionadas cuando comienza la edición de un campo
CURSORSETPROP( ) Depende de los parámetros
DELETE Registro activo
DELETE NEXT 1 Registro activo
DELETE RECORD n Registro n
DELETE de más de un registro Toda la tabla
DELETE – SQL Registro activo
GATHER Registro activo
INSERT Toda la tabla
INSERT – SQL Encabezado de la tabla
MODIFY MEMO Registro actual cuando comienza la edición
READ Registro actual y todos los registros de campos con alias
RECALL Registro activo
RECALL NEXT 1 Registro activo
RECALL RECORD n Registro n
RECALL de más de un registro Toda la tabla
REPLACE Registro actual y todos los registros de campos con alias
REPLACE NEXT 1 Registro actual y todos los registros de campos con alias
REPLACE RECORD n Registro n y todos los registros de campos con alias
REPLACE de más de un registro Toda la tabla y todos los archivos de campos con alias
SHOW GETS Registro actual y todos los registros de campos con alias
TABLEUPDATE( ) Depende del almacenamiento en búfer
UPDATE Toda la tabla
UPDATE – SQL Toda la tabla

Ejemplo: bloqueo automático

En el ejemplo siguiente, el usuario bloquea automáticamente el encabezado de la tabla; para ello, anexa registros de otra tabla, aunque Lectores se haya abierto como un archivo compartido.

SET EXCLUSIVE OFF
USE Lectores
APPEND FROM Libros FOR AñoEd = 2008

Bloqueo manual

Puede bloquear manualmente un registro o una tabla mediante las funciones de bloqueo.

Para bloquear manualmente un registro o una tabla

  • Utilice uno de estos comandos:
    RLOCK()
    LOCK()
    FLOCK()

RLOCK( ) y LOCK( ) son idénticos y bloquean uno o más registros. FLOCK( ) bloquea un archivo. Las funciones LOCK( ) y RLOCK( ) pueden aplicarse a un encabezado de tabla. Si especifica 0 como el registro para LOCK( ) o RLOCK( ) y la prueba indica que el encabezado está desbloqueado, la función bloqueará el encabezado y devolverá True (.T.).

Una vez bloqueado un registro o una tabla, asegúrese de liberar el bloqueo mediante el comando UNLOCK lo antes posible para proporcionar acceso a otros usuarios.

Estas funciones de bloqueo manual realizan las siguientes acciones:

  • Comprueban el estado de bloqueo del registro o la tabla.
  • Si la prueba indica que el registro está desbloqueado, bloquean el registro o la tabla y devuelven True (.T.).
  • Si no se puede bloquear el registro o la tabla, vuelven a intentarlo, dependiendo del valor actual de SET REPROCESS.
  • Devuelven True (.T.) o False (.F.), indicando si el intento de bloqueo ha tenido éxito o no.

    Sugerencia   Si desea comprobar el estado de bloqueo de un registro en la sesión sin bloquear el registro, use la función ISRLOCKED( ) o ISFLOCKED( ).

Si falla el intento de bloquear un registro o una tabla, el comando SET REPROCESS y la rutina de error actual determinarán si vuelve a intentarse el bloqueo. SET REPROCESS afecta al resultado de un intento de bloqueo sin éxito. Puede controlar el número de intentos de bloqueo o el período de tiempo durante el cual se intenta un bloqueo mediante SET REPROCESS.

Ejemplo: bloqueo manual

El ejemplo siguiente abre la tabla customer para acceso compartido y utiliza FLOCK( ) para intentar bloquearla. Si la tabla se bloquea con éxito, REPLACE ALL actualizará todos sus registros. UNLOCK libera el bloqueo de archivo. Si el archivo no puede bloquearse porque otro usuario haya bloqueado el archivo o uno de sus registros, se mostrará un mensaje.

SET EXCLUSIVE OFF
SET REPROCESS TO 0
USE Lectores                               && Abrir tabla en modo compartido
IF FLOCK()
     REPLACE ALL Nombre ;                  && Reemplazar y Desbloquear
     WITH UPPER(Thisform.txtNombre.value)
     UNLOCK
ELSE                                       && Desplegar mensaje de alerta
      WAIT "El Archivo esta siendo usado por otro usuario." WINDOW NOWAIT
ENDIF

Desbloquear datos

Después de establecer un bloqueo de registro o de archivo y completar una operación de datos en un entorno compartido, deberá liberar el bloqueo lo antes posible. Hay varios modos de liberar los bloqueos. En algunos casos, basta con desplazarse al registro siguiente para desbloquear los datos. En otros casos es preciso ejecutar comandos explícitos.

Para desbloquear un registro que se ha bloqueado automáticamente, sólo necesitará mover el puntero de registro, aunque haya establecido MULTILOCKS ON. No obstante, deberá eliminar explícitamente el bloqueo de un registro que haya bloqueado manualmente; mover el puntero de registro no es suficiente.

En la tabla siguiente se describen los efectos que producen diversos comandos sobre el bloqueo manual y automático de registros y tablas.

(Comando) Efecto
UNLOCK Libera los bloqueos de registro y archivo en el área de trabajo actual.
UNLOCK ALL Libera todos los bloqueos de todas las áreas de trabajo de la sesión actual.
SET MULTILOCKS OFF Activa la liberación automática del bloqueo actual al asegurar un bloqueo nuevo.
FLOCK( ) Libera todos los bloqueos de registro del archivo afectado antes de bloquear el archivo.
CLEAR ALL, CLOSE ALL,
USE, QUIT
Libera todos los bloqueos de registro y archivo.
END TRANSACTION Libera los bloqueos automáticos.
TABLEUPDATE( ) Libera todos los bloqueos antes de actualizar la tabla.

Precaución   Si se ha bloqueado automáticamente un registro en una función definida por el usuario y se desplaza el puntero fuera del registro y se vuelve a colocar sobre él, el bloqueo se liberará. Utilice el almacenamiento de tablas en búfer para evitar este problema.

SET REPROCESS TO (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.
Anuncios
comentarios
  1. Oscar Nuñez dice:

    y el codigo fuente ?

  2. Add_Mndz dice:

    Esto es lo que haremos !! Copy&Paste ??? Hahaha

  3. Kimberly dice:

    ud nos quiere matar

  4. Jazmin dice:

    no es justo, que tengamos que hacer eso..!!! Jummm

Comentar, es ayudar a los demas... Matthew

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s