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