Hola a todos! Tengo una base de datos en Visual Fox, que trabajara con varios usuarios. ¿Cómo hago para borrar físicamente un registro sin bloquear la tabla en modo exclusivo y evitarme así interrumpir el trabajo de los otros usuarios?
1 Respuesta
Respuesta de falvarez
1
1
falvarez, VFP 7.0 y anteriores (6 años). Solamente soluciones de...
Si trabajas en multiusuario NUNCA debes abrir las bases de datos en forma EXCLUSIVA ni usar las tablas en forma EXCLUSIVA. Siempre SHARED. Simpre debes tener seteado el SET DELETE en ON. En el .PRG que inicia tu programa debes poner el siguiente código: SET RESOURCE off SET DEFA TO C:\RPI SET PATH TO C:\RPI\DATOS;C:\RPI\FONDOS;C:\RPI\FORMULARIOS;C:\RPICLASES;C:\RPI\GRAFICOS;C:\RPI\ICONOS;C:\RPI\INCLUSIONES;C:\RPI\MENUS;C:\RPI\PROGRAMAS;C:\RPI\REPORTES PUBLIC _FONDO0,_FONDO1,_FONDO2,_FONDO3,_FONDO4,_FONDO5 _FONDO0='C:\RPI\GRAFICOS\WALL.JPG' _FONDO1='C:\RPI\GRAFICOS\WALL.JPG' _FONDO2='C:\RPI\GRAFICOS\BK.JPG' _FONDO3='C:\RPI\GRAFICOS\BACKGRD1.GIF' _FONDO4='C:\RPI\GRAFICOS\TRAMA19.GIF' _FONDO5='C:\RPI\GRAFICOS\F_FONTBACK.JPG' SET PROCEDURE TO SUBRUTINAS.PRG SET EXCLUSIVE OFF SET AUTOSAVE ON SET OPTIMIZE ON SET REPRO TO AUTOMATIC SET MULTILOCKS ON Periódicamente debes correr un procedimiento con un código parecido a este. Open database mi_bdd exclusive Use tabla1 exclusive PACK Use tabla2 exclusive PACK Use tabla3 exclusive PACK . . . . . Use tablan exclusive PACK Close database Pero este proceso se debe ejecutar teniendo la seguridad de que no hay otro usuario en el sistema. Puedes ejecutarlo al principio del día, al fin del día o cuando haces la copia de seguridad (que también es un proceso de uso exclusivo de tablas). SUERTE.