Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How to know if a table is locked?
Message
 
To
24/01/2000 17:44:30
Fausto Garcia
Independent Developer
Lima, Peru
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
00321849
Message ID:
00322429
Views:
27
>>>Hi to all,
>>>
>>>Is there a way to know if a table is locked in the middle of a transaction before opening it?
>>>I tried using flock() but this works only if the table is open. What about checking a table lock status if it is closed? Isn't there a function as "locked()"?
>>>
>>>Thanks for your help,
>>>
>>>Fausto
>>
>>Fausto, cuando intentas bloquear una tabla que ya esta bloqueada se genera un mensaje de error, este mensaje puede ser manejado con la instruccion "ON ERROR". Para cualquier ayuda adicional puede referirte a la instruccion "TABLEUPDATE" o a la instruccion "ON ERROR" en la ayuda de VFP.
>>
>>Cualquier duda o comentario adicional puede contactarme por este mismo metodo.
>
>Hola amigo,
>
>Ciertamente, es lo que pense inicialmente, pero sucede que si yo deseo intentar el bloqueo de una tabla, debo tenerla abierta. Pero si esta tabla no la tengo abierta, está en medio de una transacción por otro usuario e intento abrirla con "use tabla", en im entorno de comandos de Visual FoxPro obtengo el mensaje "Registro en uso, por favor espere ... ", tampoco se activa la rutina "on error" y me imposibilita ejecutar cualquier otra acción hasta que la dichosa tabla quede libre de la transacción.
>No sé si me hice entender. Espero tus comentarios.
>
>Gracias,
>
>Fausto

Realmente no se porque necesitas abrir la tabla al momento de iniciar la transaccion, el metodo que yo utilizo (y el creo es el mas apropiado) es de abrir la tabla en el data enviroment y asignarle ahi mismo los metodos de acceso que tendrá. Estoy utilizando este metodo y hasta ahora no me he encontrado con este problema. Si lo que pasa es que necesitas abrir la tabla en cierto momento de forma exclusiva y otro usuario ya la tiene bloqueada lo mejor es hacer un procedimiento que detecte este problema en el mismo data enviroment.

Para hacer esto solo tienes que capturar el numero de error devuelto al evento "ERROR" de la forma y enviarlo a un procedimiento definido por ti mismo donde estará la rutina de control para los diferentes mensajes de error que se puedan generar. Este metodo lo he utilizado con mucho exito.

Cualquier cosa dejame saber
I'm a mixture of Albert Einstein and Arnold Schwarzenegger. The only trouble is that I got Einstein's body and Schwarzenegger's brain
Previous
Reply
Map
View

Click here to load this message in the networking platform