Page 1 of 1

Sobre el Diccionario de Datos

Posted: Sun Mar 18, 2012 6:33 pm
by JavierVital
Que tal buen dia.
Solo una pregunta para los que ya pasaron por esto.
Tengo en un servidor remoto las tablas de forma libre, cree un DD para poder conectarme
ya me conecto a el, las tablas siguen libres, he tratado de abrir las tablas pero no he podido lograrlo
La pregunta, es FORZOSO que las tablas estén referencia das dentro del DD ??
Si no es así, me podrían echar la mano para poder abrirlas.

Saludos.

Re: Sobre el Diccionario de Datos

Posted: Sun Mar 18, 2012 9:38 pm
by compubrion
Saludos !
Tienes que añadir las tablas al diccionario, esto lo puedes hacer con el ARC o mediante codigo, con
la funcion AdsDDaddTable()
Ejem.
AdsDDaddTable( "Table1", "table1.adt", "table1.adi" ) Para tablas nativas
AdsDDaddTable( "Table1", "table1.dbf", "table1.cdx" ) Para DBFCDX

Donde el primer paramatero es un identificador de a tabla, luego la tabla con su extension y despues el indice con su extension
*--

En tu sistema despues de conectarte a DD abres todas las tablas y le asignas un alias y atravez de este alias accedes a los
datos

Code: Select all

*--
FUNCTION CONECTACONADS()
*--
LOCAL cUser, cPass, nServ, cData
LOCAL oErr
LOCAL hConect
LOCAL lRet := .F.
LOCAL nFiles
LOCAL cFileIni := ".\Conecta.ini"
aFilesAdt := { "Condowin", "Conjunto", "Propieta", "Tablacon", "Proveedo",;
               "Concepto", "Deudagen", "Emisione", "Formatos", "Historia",;
               "Movidiar", "Operadia", "Apartame", "Codigos", "Detamovi", ;
               "Contratos", "Unidades" }
*--
cUser := LOWER( ALLTRIM( NETNAME() ) )
cPass := LOWER( ALLTRIM( NETNAME() ) )
nServ := 7
cData := "\\SERVIDOR\SERVERADS\CONDOMINIOS\CONDOMINIOS.ADD"
IF FILE( cFileIni )
   cData := GetPvProfString( "DATOS", "CARPETA", cData, cFileIni )
ENDIF
*--
IF ADSCONNECT60( cData, nServ, cUser, cPass,,@hConect )
   SET AUTOPEN ON
   *--
   FOR nFiles = 1 TO LEN( aFilesAdt )
       DBUSEAREA( .T., RDDSETDEFAULT(), aFilesAdt[ nFiles ], aFilesAdt[ nFiles ], .T. )
       ( aFilesAdt[ nFiles ] )->( ORDSETFOCUS( 1 ) )
   NEXT
   *--
   lRet := .T.
ELSE
   ADSGETLASTERROR( @oErr )
   ADSSHOWERROR( oErr, FWDESCRIPTION )
ENDIF
*--
RETURN( lRet )
*--
*

 

Re: Sobre el Diccionario de Datos

Posted: Wed Mar 28, 2012 2:51 pm
by JavierVital
Gracias por tu ayuda
Veo que si es NECESARIO que las tablas esten referenciadas en el DD

otra pregunta ya estando aqui.
Tengo otro servidor donde SI utilizo el DD y mis tablas si estan dentro del DD
pero ahora necesito abrir una tabla libre, como le puedo hacer.

Gracias.

Re: Sobre el Diccionario de Datos

Posted: Wed Mar 28, 2012 6:06 pm
by compubrion
Saludos !

Use TuTabla VIA DBFCDX para cdx
Use TuTabla VIA DBFNTX para cdx
use TuTabla VIAD ADS

Re: Sobre el Diccionario de Datos

Posted: Wed Mar 28, 2012 7:17 pm
by lucasdebeltran
Javier,

Si usas ADS Local o Remoto, pues abrir free tables como abres un DBF normal.

Además, mira este post:
http://harbourlanguage.blogspot.it/2012 ... ddads.html


Salu2

Re: Sobre el Diccionario de Datos

Posted: Mon Apr 09, 2012 3:49 pm
by JavierVital
Con ADSConnect(cPathTEM) , solamente así pude abrir tablas libres del DD
y después cerrar la coneccion AdsDisconnect().