La funcion de clipper DBSELECTAREA() posiciona la base activa en la indicada, peor no encuentro la forma de hacerlo en C3.Lo uso normalmente para las funciones de bloqueo de red , de la siguiente forma:
Function Net_use(cFichero,lExclusivo, nTiempo,cAliases,cVia)
* Permite abrir un fichero en red en cualquier modo.
* Retorna .t. si ha podido abrirlo o .f. si no ha podido abrirlo en el intervalo de tiempo indicado.
* El usuario tiene la posibilidad de reintentar o salir de la aplicaci¢n
* Parametros:
* cFichero..: Nombre del fichero a abrir
* lExclusivo: Modo de Apertura .t. para abrir en exclusiva
* nTiempo...: Tiempo que debe reintentar la apertura del fichero
* cAliases..: Nombre del Alias
Local nOpcion,nCopia,lSiempre,lNuevaArea
nTiempo := If (nTiempo==NIL,0,nTiempo)
lSiempre := If (nTiempo = 0,.t.,.f.)
lExclusivo := If (lExclusivo==NIL,.t.,lExclusivo)
cVia := If (cVia==NIL,"DBFNTX",cVia)
nCopia := nTiempo
If Select(cAliases) == 0
lNuevaArea := .t.
Else
DbSelectar(Select(cAliases))
lNuevaArea := .f.
Endif
...
lo que hago es usar el alias para buscarla con SELECT().Si SELECT(cAliases) es 0, esto indica que la base no esta abierta y debe ir a una nueva area de bases, pero si SELECT(cAliases) <> 0 esto indica que la base está ya abierta , y entonces me posiciono en su zona de trabajo usando DBSELECTAREA(SELECT(cAliases))
pero no encuentro la forma de hacerlo en C3... alguna idea?
_________________ (C) Josu Udaondo...el fiera de clipper 5
Bilbao 2006
|