Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Determinar origen de datos de un ALIAS()
Message
From
31/01/2005 16:50:52
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00981466
Message ID:
00982471
Views:
24
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
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform