Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Determinar origen de datos de un ALIAS()
Message
 
To
31/01/2005 16:50:52
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00981466
Message ID:
00982567
Views:
26
Gracias Ricardo por lo ejemplos.
Me gusto el de abrir el contenedor DBC, me gusta de vez en cuando meter mano en las "entrañas" del VFP.

Agregaría a tus soluciones, la que dieron Alex y Hugo:
CursorGetProp("SourceType")
para poder determinar en caso de ser una vista, saber si es local o remota.

Saludos,
RFR


>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.
Previous
Reply
Map
View

Click here to load this message in the networking platform