Como sabes si una base de datos esta abierta en otra s

Hola mi pregunta e la siguiente tengo una opción para reindexar toda las tablas de mi base de datos, o escoger alguna de ellas como esta trabajando en modo multiusuario, algún otro usuario pudiera tener la aplicación abierta aunque la base de datos sea opción SHARED
entonces pongo la siguiente intriuccion
?
close databases all
Y posteriormente la vuelvo a abrir en modo exclusive
´Para poder reindexar
Peor si esta abierta en otra sesión me manda un error y obvio mi aplicación se cierra.
¿Qué poder hacer para realizar esta tarea de reindexar y saber que en otra sesión esta abierta esta base de datos?
Gracias

1 respuesta

Respuesta
1
Espero poder ayudarte:
Yo lo hago así (después te explico cada cosa):
on error *
use mitabla excl
if used('miTabla')
    Reindex
Endif
On error
La traducción sería:
on error * - si hay un error no hacer nada
if used('mitabla') si la esta abierta porque no la estaba usando nadie
on error (sin nada) volver a dejar los avisos de errores como estaban
Espero haberte podido ayudar, estoy a tu disposición.
Perdón, te estabas refiriendo a bases de datos y no tablas. Vamos de nuevo
on error *
Open database MiBase excl
if dbused('miBase')
   ... Acá hago lo que necesito hacer en modo exclusivo
endif
on error
El concepto es el mismo pero cambian las funciones.
Nos vemos.
Muchísimas gracias por responder, por ahí revisando en las preguntas de otros, vi la solución para una tabla pero lo aplique para la base de datos y me funciono, con la instrucción TRY y creo debe funcionar igual con esta. Mil gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas