Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Determinar origen de datos de un ALIAS()
Message
De
31/01/2005 16:50:52
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00981466
Message ID:
00982471
Vues:
26
Hola tocayo:
Se me ocurren dos opciones:
a) Utilizar la función DbGetProp()y atrapar el error:
Open Database MiDataBase
TRY 
   cAlias=Alias()
   lOk = .T.
   DBGetProp(cAlias,"VIEW","Comment")

CATCH TO oErr
   lOk = .F.

FINALLY

EndTry

IF lOk
   =MessageBox(cAlias + " Es una Vista")

Else
   TRY 
      lOk = .T.
      DBGetProp(cAlias,"DATABASE","Comment")
   CATCH TO oErr
      lOk = .F.

   FINALLY

   EndTry

   IF lOk
      =MessageBox(cAlias + " Es una Tabla")
   EndIf 
ENDIF
b) Abrir la .dbc como una tabla y buscar el nombre y el tipo:
Use MiDataBase.dbc Again Shared

cAlias=Lower(Alias())
Locate for Lower(ObjectName)=cAlias .and. Lower(ObjectType)="view"

IF !Eof()
   =MessageBox(cAlias + " Es una Vista")
ELSE
   Locate for Lower(ObjectName)=cAlias .and. Lower(ObjectType)="table"
   IF !Eof()
	=MessageBox(cAlias + " Es una Tabla")
   EndIf 
EndIf

Use
>Tenemos un caso particular, en el cual nos integramos con una aplicación de terceros escrita en VFP con DBC y vistas, locales, remotas y tablas asociadas al DBC.
>
>La pregunta es:
>Como se si los datos abiertos son una vista local, una vista remota o una tabla ?
>Por ejemplo, la rutina nuestra se ejecuta y pregunta por la función ALIAS(), si no es vacia, esta devuelve un nombre, pero el tema es que tenemos que tener un tratamiento si una vista remota, si vista local y otro si es un DBF del contenedor seleccionado.
>
>Existe alguna función ?
>Gracias.
Ricardo Aidelman
Software Developer
Praxis Computación
Buenos Aires, Argentina
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform