PDA

Ver la Versión Completa : table is busy


JoseQ
08-09-2004, 16:22:48
Buenas, cuando intento vaciar una tabla paradox mediante emptytable en algunas ocasiones me produce un error al estar la tabla ocupada


begin
privfotos.Close;
privfotos.EmptyTable;
privfotos.Open;
end;


alguna idea ? como podria asegurar que la tabla esta libre o forzar su liberacion ?

marcoszorrilla
08-09-2004, 17:08:47
begin
privfotos.Close;
privfotos.Exclussive:=True;
try
privfotos.Open;
privfotos.EmptyTable;
except
Showmessage('La tabla está bloqueada por otro puesto.');
end;
end;

Un Saludo.

JoseQ
08-09-2004, 17:36:31
no es lo que necesito, ya se tratar la excepcion, xo, lo que io kiero esk una vez se produzca, desblokear la tabla, lo k manualmente seria borrar los lck's

marcoszorrilla
08-09-2004, 17:42:12
Pues eso no se puede si una tabla está en uso, otro usuario no podra obtener la apertura en modo exclusivo que es lo que se necesita para hacer un EmptyTable, no se trata solamente de controlar la excepción sino a través de ella ver que la tabla está bloqueada y por lo tanto cancelar la acción mostrando un mensaje personalizado.

A poco que lo analices, verás que no tiene sentido lo que pretendes, como un usuario va a poder vaciar una tabla que esta siendo utilizada por otro o que se halla abierta en modo compartido.

Un Saludo.

JoseQ
08-09-2004, 18:09:17
el problema no es que quiera utilizar una tabla que esta siendo utilizada, es una tabla que a sido utilizada, y que al ser mal cerrada se queda bloqueada, realmente no ai ningun usuario utilizandola ni ningun programa accede a ella, xo sigue bloqueada.

marcoszorrilla
08-09-2004, 18:13:34
Me da la impresión que estás haciendo prácticas desde el propio IDE de Delphi y lo que te ocurre es que el IDE es un usuario más.

Si compilas el programa y cierras la tabla correctamente luego verás como puedes abrirla de nuevo en modo exclusivo y hacer lo que pretendes.

Otra cosa es que se produzca un fallo y se quede el controlador de esa tabla en memoría esto sería sistema operativo y no quedaría más remedio que apagar el ordenador y volverlo a encender.

Un Saludo.

JoseQ
08-09-2004, 18:39:48
eso ia lo sabia io, lo que queria saber es si podia hacer otra cosa que no fuera reiniciar cada vez que el programa que estoy diseñando produjera un error, que es lo que me toca hacer ahora.