FoxPro/Visual FoxPro - Problema con ZAP IN

 
Vista:

Problema con ZAP IN

Publicado por yigabait (17 intervenciones) el 07/07/2006 07:36:50
Saludos, tengo un pequeño problema. Al iniciar un formulario quiero borrar todos los datos de una tabla, por lo que he decidido usar el comando Zap In. Sé que para usarlo hay que abrir la tabla en modo exclusivo:

USE myTable EXCLUSIVE

El problema es que me sale un error que dice: "El archivo está en uso"

¿Qué puedo hacer para cerrar esa tabla únicamente y abrirla en modo exclusivo para poder aplicar el ZAP IN, alguna otra solución?

Gracias por su tiempo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con ZAP IN

Publicado por Plinio (7841 intervenciones) el 07/07/2006 14:44:06
Si esta siendo usada por otro usuario no hay maneras de aplicar el Zap. Lo que podrias controlar es que tu preguntes si ese archivo esta abierto. Ver función FREAD() en la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con ZAP IN

Publicado por Carlos Ayala G (169 intervenciones) el 07/07/2006 15:47:43
Hola amigo

Lo que puedes hacer es algo bien simple

1-preguntas si la tabla esta abierta si lo esta la cierras para ello haces esto :

IF USED('nombre_tabla')
SELECT nombre_tabla
ENDIF

2-Abreas la tabla de forma exclusina asi :

USE nombre_tabla EXCLUSIVE

---- y listo-----

**********************************************************************************
pero amigo si deseas trabajar esta tabla siempre de modo exclusivo mejor la abres via codigo en evento INIT o LOAD de tu formulario la tabla de forma exclusiva y te evitas de problemas.... Recuerda que su haces esto la tabla tienes que quitarla del entorno de datos de tu formulario y asignarle un area de trabajo libre

SELECT 0
USE nombre_tabla EXCLUSIVE
***************************************************************************************
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con ZAP IN

Publicado por Plinio (7841 intervenciones) el 07/07/2006 21:23:43
El problema que el USED solo detecta si una tabla esta abierta en la seccion actual. Ejemplo si otro usuario la tiene abierta en otra pc no te lo detecta. Por eso recomiendo el FREAD que devuelve -1 si un archivo esta abierto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Problema con ZAP IN

Publicado por Ernesto Hernandez (4623 intervenciones) el 07/07/2006 18:29:18
y si la tabla esta en uso en otro formulario o en otra parte del programa como quieres realizar el ZAP ??

IF USE()
mESSAGEbOX('No se puede realizar la limpieza de la tabla',0,"Sistemas")

ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Problema con ZAP IN

Publicado por Ernesto Hernandez (4623 intervenciones) el 07/07/2006 18:35:20
y si la tabla esta en uso en otro formulario o en otra parte del programa como quieres realizar el ZAP ??

IF USE('AliasTabla")
mESSAGEbOX('No se puede realizar la limpieza de la tabla '+AliasTabla ,0,"Sistemas")
USE

ENDIF


Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con ZAP IN

Publicado por Plinio (7841 intervenciones) el 07/07/2006 21:27:09
Para ti tambien la observacion que le hice a Carlos Ayala. Pueden probar abriendo Foxpro dos veces, en la primera abre una tabla y en la segunda usa USED() y te dara falso. Por eso recomiendo FREAD()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Problema con ZAP IN

Publicado por Ernesto Hernandez (4623 intervenciones) el 07/07/2006 21:39:58
Pero no el FREAD() es una funcion de bajo nivel ???


Seria cuestion de probarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar