¿Com puedo compartir mis tablas?

Tengo una aplicación en VFP 7.0 pero ahora quiero desarrollarla para red. Estoy utilizando el parámetro SHARED y una rutina con el flock pero tengo conflicto al abrir y cerrar mis tablas, sobre todo si utilizo un grid y ejecuto otra forma. ¿Qué hago?, ayúdenme por favor.

1 Respuesta

Respuesta
1
Abre todas tus tablas así:
Use tabla1 shared in 0
Use tabla2 shared in 0
Use tabla3 shared in 0
Use tablan shared in 0
Eso las abrirá de forma compartida.
Hazlo sólo UNA VEZ en el inicio de la aplicación. Y para hace referencia a la tabla sólo escribes:
select tabla1
Replace etc, etc
Gracias experto. Una duda: desde una forma utilizo un grid de solo lectura de una tabla por y con un botón de comando ejecuto otra forma donde utilizare un replace o un append blank. Debo abrir desde la primera forma como me dices: use tabla1 shared in 0, ¿o cómo le hago?. Por otro lado: ¿No es necesario utilizar la rutina con el flock?. Gracias por tu ayuda.
Las instrucciones de apertura de tablas las haces por lo general una sola vez en el inicio de la aplicación. El inicio depende de cómo lo tengas configurado: si inicias con un form, entonces lo pones en el init o load o si inicias con un prg, entonces lo pones allí, al principio del prg.
En la práctica lo que hago es crear un procedimiento que se encargue de esa apertura de datos, el cual llamo desde los lugares que te menciono arriba.
Definitivamente si tu interés además es "controlar" el acceso a una tabla por uno o más usuarios a la vez, Flock te ayuda. Sin embargo estando la información eun grid, ya el mismo fox te ayuda en ese proceso.
Ejemplo:
Close databases
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE products  && Opens products table
SET REPROCESS TO 3 SECONDS
SELECT * FROM products INTO TABLE newprods
IF FLOCK( )
   *** New product initialization ***
   REPLACE ALL in_stock  WITH 0.00
   REPLACE ALL on_order WITH 0.00
   WAIT 'Initialization Complete' WINDOW NOWAIT
ELSE
   *** File is locked, warn user ***
   WAIT WINDOW 'Unable to open products file; try again later!' NOWAIT
ENDIF
BROWSE FIELDS in_stock, on_order && Displays newprods table
USE
ERASE newprods.dbf

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas