Siguiendo el ejemplo de RF (uno algo antiguo pero que a煤n funciona) arm茅 un peque帽o programa para hacer la conexi贸n.
Lo primero que me pas贸 fu茅 que tengo que crear si o si el diccionario, es imprescindible para hacer la conexion con AdsConnect60(). Me llam贸 la atenci贸n porque eso es diferente y para acceder a tablas que acced铆a directamente, con AIS no puedo.
El problema que tengo es que para poder acceder a una tabla tengo que declararla en el diccionario, y en el use solo indico el nombre sin el path. Eso es diferente de como lo hace Ren茅 en su c贸digo. Para mas claridad, adjunto mi c贸digo:
ANNOUNCE RDDSYS
FUNCTION aisdem32()
LOCAL oBar
SET DELETE ON
REQUEST ADS, ADSKeyCount, ADSKeyNo, OrdKeyCount, OrdKeyNo
RddRegister("ADS",1)
RddSetDefault("ADS")
AdsRightsCheck(.F.)
AdsSetServerType(4) //SET SERVER AIS
AdsSetFileType(2)
IF AdsConnect60( "\\pluton\disco-d\instalar\inciden.add", 4 , "inciden", "inciden" )
Alert("Esta ahora conectado al Sevidor AIS de ATISA;;"+;
"You are now connected to ATISA Server","Bienvenido / Welcome")
ELSE
Alert("Se ha rechazado la conexi贸n al servidor AIS de Atisa, por favor intente mas tarde;;"+;
"Conection to Atisa's AIS Server rejected, please, try again later","AIS Error")
QUIT
ENDIF
AbreDbfs()
RETURN (.T.)
FUNCTION AbreDbfs()
// USE "\\PLUTON\DISCO-D\instalar\LIFTPINT\Empresas.Dbf" SHARED NEW Esto no funciona pero asi es como lo hace Ren茅 en su ejemplo
// USE "W:\instalar\LIFTPINT\Empresas.Dbf" SHARED NEW esto tampoco ambos dan error 5132
USE "Empresas" SHARED NEW // esto si
browse()
RETURN (.T.)Sin embargo en el c贸digo de Ren茅 la apertura se hace especificando el path:
FUNCTION AbreDbfs()
cAliCat := "CATCUE"
USE \\googleserver\cursos\adsdemo\cibconwn\stc\CATCUE.cat SHARED NEW ALIAS (cAliCat)
(cAliCat)->(AdsCacheRecords(50))
(cAliCat)->(OrdSetFocus("NUMCUENTA"))
(cAliCat)->(DBGOTOP())
cAliCatPol := "CAT1"
USE \\googleserver\cursos\adsdemo\cibconwn\stc\CATCUE.CAT SHARED NEW ALIAS (cAliCatPol)
(cAliCatPol)->(OrdSetFocus("NUMCUENTA"))
cAliPol := "ENEPOL"
USE \\googleserver\cursos\adsdemo\cibconwn\stc\ENEPOL.POL SHARED NEW ALIAS (cAliPol)
(cAliPol)->(OrdSetFocus("POLIZA")) // seleccion del indice / index selection
(cAliPol)->(ADSCACHERECORDS(50)) // lectura de registros por adelantado / record "in advance" reading
cAliPol2 := "POLENE"
USE \\googleserver\cursos\adsdemo\cibconwn\stc\POLENE.POL SHARED NEW ALIAS (cAliPol2)
(cAliPol2)->(OrdSetFocus("POLIZA")) // seleccion del indice / index selection
(cAliPol2)->(ADSCACHERECORDS(50) ) // idem
(cAliPol2)->(QuickScope((cAliPol)->tipopoli2+STR((cAlipol)->numpoli2,4))) // Filtro sobre el detalle en base al maestro / Detail filtering based on the master
(cAliPol2)->(DBGOTOP())
SET RELATION TO numcta+numsubcta+numssubcta+numauxil INTO (cAliCatPol)
RETURN (.T.)Lo que se me complica es que tengo que crear algunas dbfs cuyo nombre cambia segun diversos par谩metros como la fecha y cosas por el estilo, y con el diccionario no se me ocurre como manejarlo.
Un saludo,
Carlos.
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"