Pregunta: | 15660 - EVALUAR TABLAS ABIERTAS CON DIFERENTES APLICACIONES |
Autor: | Giovanni Martinez |
Amigos si alguien me puede colaborar se lo agradeceria
Soy algo novato con esto y me he rompido el coco y nada que logro lo que quiero bueno hay va... SET EXCLUSIVE ON IF !USED('MITABLA') WAIT WINDOWS 'TABLA NO ABIERTA' ELSE WAIT WINDOWS 'TABLA ABIERTA' ENDIF Con estas lineas puedo evaluar si una dbf esta en uso o no, SIEMPRE Y CUANDO HAYA SIDO ABIERTA CON VFP O DESDE LA VENTANA DE COMANDOS. pero si la DBF esta abierta con otro programa por ejemplo DBU o desde otra aplicacion las anteriores lineas no lo detectan y al correr el programa me genera un error. Agradeceria me explicaran por que?? y tambien me dijeran como lo tengo que hacer?? para que funcione correctamente. sin nesecidad de tener que utilizar un controlador de errores con ON ERROR DO miprocedimiento si me pueden enviar unas lineas con el codigo mucho mejor Un abrazo Giovanni |
Respuesta: | Antonio Estrada |
La función Used solo te devuelve .t. cuando ha sido el programa actual el que ha abierto la tabla. Si no quieres utilizar el "On error do", puedes abrir la tabla con funciones de bajo nivel, y si no puedes es que está siendo usada:
f=fopen ("mitabla.DBF",1) fclose(f) if f=-1 Wait window "Tabla abierta por otra aplicación" else Wait window "Tabla libre" use("mitabla") ... ... endif A ver si te sirve... |