Cómo saber si una base de datos esta abierta.

04/01/2005 - 09:46 por José Luis | Informe spam
Hola a todos, antes de nada desearos a todos un feliz y prospero año nuevo.
El motivo de mi consulta es para ver si alguien me podría decir si hay
alguna manera de saber si una base de datos ya esta abierta antes de
realizar el proceso de apertura de dicha base de datos.

Gracias por anticipado.

Un saludo,
José Luis.

Preguntas similare

Leer las respuestas

#1 Antonio Muñoz de Burgos y Caravaca
04/01/2005 - 12:34 | Informe spam
Hola José Luis:

Puedes usar DBUSED( )

De la ayuda de VFP.

Returns true (.T.) if the specified database is open.

DBUSED(cDatabaseName)

Return Values: Logical

Parameters: cDatabaseName

Specifies the name of the database for which DBUSED( ) returns a logical
value indicating whether or not the database is open.

Remarks: DBUSED( ) returns true (.T.) if the specified database is open;
otherwise, it returns false (.F.).

Example

The following example opens the TESTDATA database, and then uses DBUSED( )
to determine if the TESTDATA database and a database named TEST are open.

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')

CLEAR
? 'Testdata database open? '
?? DBUSED('testdata') && Displays .T.
? 'Test database open? '
?? DBUSED('test') && Displays .F.

Saludos, Antonio Muñoz de Burgos
www.emans.com (Web realizada en vFoxPro)
Manifestando el apoyo a la comunidad de Visual FoxPro

" José Luis" <JLB> escribió en el mensaje
news:
Hola a todos, antes de nada desearos a todos un feliz y prospero año
nuevo.
El motivo de mi consulta es para ver si alguien me podría decir si hay
alguna manera de saber si una base de datos ya esta abierta antes de
realizar el proceso de apertura de dicha base de datos.

Gracias por anticipado.

Un saludo,
José Luis.


Respuesta Responder a este mensaje
#2 José Luis
04/01/2005 - 14:08 | Informe spam
Muchas gracias Antonio,

a primera vista me parece que es esto exactamente lo que buscaba, lo voy a
probar.

Un saludo,
José Luis.


"Antonio Muñoz de Burgos y Caravaca" escribió en el
mensaje news:
Hola José Luis:

Puedes usar DBUSED( )

De la ayuda de VFP.

Returns true (.T.) if the specified database is open.

DBUSED(cDatabaseName)

Return Values: Logical

Parameters: cDatabaseName

Specifies the name of the database for which DBUSED( ) returns a logical
value indicating whether or not the database is open.

Remarks: DBUSED( ) returns true (.T.) if the specified database is open;
otherwise, it returns false (.F.).

Example

The following example opens the TESTDATA database, and then uses DBUSED( )
to determine if the TESTDATA database and a database named TEST are open.

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')

CLEAR
? 'Testdata database open? '
?? DBUSED('testdata') && Displays .T.
? 'Test database open? '
?? DBUSED('test') && Displays .F.

Saludos, Antonio Muñoz de Burgos
www.emans.com (Web realizada en vFoxPro)
Manifestando el apoyo a la comunidad de Visual FoxPro

" José Luis" <JLB> escribió en el mensaje
news:
> Hola a todos, antes de nada desearos a todos un feliz y prospero año
> nuevo.
> El motivo de mi consulta es para ver si alguien me podría decir si hay
> alguna manera de saber si una base de datos ya esta abierta antes de
> realizar el proceso de apertura de dicha base de datos.
>
> Gracias por anticipado.
>
> Un saludo,
> José Luis.
>
>


Respuesta Responder a este mensaje
#3 José Luis
04/01/2005 - 16:01 | Informe spam
Buenas Antonio,

he estado probando la función que me has pasado y no consigo el resultado
esperado. Ya que tengo una base abierta y no me indica que este abierta.
Tanto si esta abierta como no siempre me devuelve como valor .f. Tengo que
decir que la base de datos esta abierta desde otra aplicación. Y la
aplicación que estoy desarrollando necesito que la base de datos que se
seleccione no este usandose.

Tienes alguna idea de como realizar esto?

Gracias por anticipado.

Un saludo,
José Luis.

"Antonio Muñoz de Burgos y Caravaca" escribió en el
mensaje news:
Hola José Luis:

Puedes usar DBUSED( )

De la ayuda de VFP.

Returns true (.T.) if the specified database is open.

DBUSED(cDatabaseName)

Return Values: Logical

Parameters: cDatabaseName

Specifies the name of the database for which DBUSED( ) returns a logical
value indicating whether or not the database is open.

Remarks: DBUSED( ) returns true (.T.) if the specified database is open;
otherwise, it returns false (.F.).

Example

The following example opens the TESTDATA database, and then uses DBUSED( )
to determine if the TESTDATA database and a database named TEST are open.

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')

CLEAR
? 'Testdata database open? '
?? DBUSED('testdata') && Displays .T.
? 'Test database open? '
?? DBUSED('test') && Displays .F.

Saludos, Antonio Muñoz de Burgos
www.emans.com (Web realizada en vFoxPro)
Manifestando el apoyo a la comunidad de Visual FoxPro

" José Luis" <JLB> escribió en el mensaje
news:
> Hola a todos, antes de nada desearos a todos un feliz y prospero año
> nuevo.
> El motivo de mi consulta es para ver si alguien me podría decir si hay
> alguna manera de saber si una base de datos ya esta abierta antes de
> realizar el proceso de apertura de dicha base de datos.
>
> Gracias por anticipado.
>
> Un saludo,
> José Luis.
>
>


Respuesta Responder a este mensaje
#4 Antonio Muñoz de Burgos y Caravaca
04/01/2005 - 18:35 | Informe spam
Hola José:

Eso debe funcionar, a menos que tu DB este abierto por otro programa o este
en una sesión de datos distinto.

Pero si este fuera el caso y solamente necesitas realizar esa comprobación,
otra opción es la que te comenta Fernando D. Bozzo.

Entiendo, que debes poner más detalles sobre el entorno donde se realiza
dicha comprobación y pasos siguientes, por lo menos en cuanto al entorno y
circunstancias.

Ya que, si es la misma aplicación la que debe controlar el estado de la DB
(en cuanto a su apertura), y entendiendo que DBUSED() te esta retornando
.F., la comprobación con FOPEN puede retornar que esta abierta, y sin
embargo puedes que no tengas alcance a la DB, resumiendo no resuelves el
alcance de la visión de la DB.

Para ello debes de conjugar SET DATASESION ID, DBUSED, SET DATABASE TO, etc,
aunque es prematuro dar cualquier afirmación en relación a esto sin más
detalles.

En fin, en cualquiera de los casos, deberías de dar un poco más de detalle,
para identificar claramente porque no te funciona DBUSED() y si realmente
puede ser aplicado a tu caso.

Saludos, Antonio Muñoz de Burgos
www.emans.com (Web realizada en vFoxPro)
Manifestando el apoyo a la comunidad de Visual FoxPro.

" José Luis" <JLB> escribió en el mensaje
news:
Buenas Antonio,

he estado probando la función que me has pasado y no consigo el resultado
esperado. Ya que tengo una base abierta y no me indica que este abierta.
Tanto si esta abierta como no siempre me devuelve como valor .f. Tengo que
decir que la base de datos esta abierta desde otra aplicación. Y la
aplicación que estoy desarrollando necesito que la base de datos que se
seleccione no este usandose.

Tienes alguna idea de como realizar esto?

Gracias por anticipado.

Un saludo,
José Luis.

"Antonio Muñoz de Burgos y Caravaca" escribió en
el
mensaje news:
Hola José Luis:

Puedes usar DBUSED( )

De la ayuda de VFP.

Returns true (.T.) if the specified database is open.

DBUSED(cDatabaseName)

Return Values: Logical

Parameters: cDatabaseName

Specifies the name of the database for which DBUSED( ) returns a logical
value indicating whether or not the database is open.

Remarks: DBUSED( ) returns true (.T.) if the specified database is open;
otherwise, it returns false (.F.).

Example

The following example opens the TESTDATA database, and then uses
DBUSED( )
to determine if the TESTDATA database and a database named TEST are open.

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')

CLEAR
? 'Testdata database open? '
?? DBUSED('testdata') && Displays .T.
? 'Test database open? '
?? DBUSED('test') && Displays .F.

Saludos, Antonio Muñoz de Burgos
www.emans.com (Web realizada en vFoxPro)
Manifestando el apoyo a la comunidad de Visual FoxPro

" José Luis" <JLB> escribió en el mensaje
news:
> Hola a todos, antes de nada desearos a todos un feliz y prospero año
> nuevo.
> El motivo de mi consulta es para ver si alguien me podría decir si hay
> alguna manera de saber si una base de datos ya esta abierta antes de
> realizar el proceso de apertura de dicha base de datos.
>
> Gracias por anticipado.
>
> Un saludo,
> José Luis.
>
>






Respuesta Responder a este mensaje
#5 José Luis
05/01/2005 - 10:04 | Informe spam
Gracias Antonio y Fernando por vuestra ayuda,

voy a investigar las diferentes alternativas que me habéis dado y seguro que
sacaré esto adelante.

Un saludo,
José Luis.

" José Luis" <JLB> escribió en el mensaje
news:
Hola a todos, antes de nada desearos a todos un feliz y prospero año


nuevo.
El motivo de mi consulta es para ver si alguien me podría decir si hay
alguna manera de saber si una base de datos ya esta abierta antes de
realizar el proceso de apertura de dicha base de datos.

Gracias por anticipado.

Un saludo,
José Luis.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida