Page 1 of 1

Como Saber si hay abierta una base de datos

Posted: Tue Sep 11, 2012 8:31 am
by colthop
Hola a todos:

Tengo un programa en red y hay una opción donde desearía saber si algun usuario de la red tiene abierta una base de datos para advertirlo.

¿Existe alguna forma?

Un saludo

Gracias

Carlos

Re: Como Saber si hay abierta una base de datos

Posted: Tue Sep 11, 2012 11:43 am
by aferra
Hola,

Yo uso esta manera Carlos.

IF Select( "<su_dbf>" ) == 0
? "No está abierto"
ELSE
? "Está Abierto"
ENDIF

Re: Como Saber si hay abierta una base de datos

Posted: Tue Sep 11, 2012 1:35 pm
by colthop
Hola Aferra:

Siempre me dice que no esta abierto.

Un saludo y gracias.

Carlos

Re: Como Saber si hay abierta una base de datos

Posted: Tue Sep 11, 2012 1:42 pm
by TecniSoftware
Carlos

Trata de abrirla en modo exclusivo, si es que puedes quiere decir que nadie la esta usando.

Saludos

Re: Como Saber si hay abierta una base de datos

Posted: Tue Sep 11, 2012 3:14 pm
by FranciscoA
Hola, tambien puedes probar con:

if (cAlias)->(USED())
MsgInfo("En uso")
else
MsgInfo("No en uso")
endif

Re: Como Saber si hay abierta una base de datos

Posted: Tue Sep 11, 2012 3:22 pm
by aferra
Hola Carlos.

Hago la apertura y funciona de esta manera.

cDriver := "DBFCDX"
lShared := .T.
lReadOnly := .F.
cFile := <su_DBF>

IF Select( cFile ) > 0
dbSelectArea( cFile )
ELSE
dbUseArea( .T., cDriver, cFile, cFile, lShared, lReadOnly )
IF NetErr()
...
...
etcétera
ENDIF
ENDIF

RETURN .T.

Re: Como Saber si hay abierta una base de datos

Posted: Tue Sep 11, 2012 4:31 pm
by colthop
Hola y gracias a todos por vuestras indicaciones.

Al final lo he solucionado como dice Alejandro, tratando de abrirla en modo Exclusivo y si da error comentarlo y no seguir.

Un saludo

Carlos

Re: Como Saber si hay abierta una base de datos

Posted: Wed Oct 03, 2012 10:28 am
by davidObarrio
FUNCTION LstAlias()
LOCAL i:=1,cMsg:='',cAlias
WHILE !Empty(cAlias:=Alias(i++))
cMsg+=cAlias+CRLF
ENDDO
MsgInfo(cMsg)
RETURN NIL

david