Encontre el codigo..
STATIC nServer
/*-------------------------------------------------------------------------------------------------*/
FUNCTION Conectar()
聽 聽LOCAL lConectado 聽:= FALSE
聽 聽LOCAL hArchivoIni := NIL
聽 聽LOCAL cError 聽 聽 聽:= ""
聽 聽LOCAL cServidor 聽 := ""
聽 聽LOCAL nServidor 聽 := 0
聽 聽LOCAL bConectar 聽 := {|| lConectado := AdsConnect60( cServidor, nServidor, "Creditos", "Mulan2013", NIL , @hConexion ) }
聽 聽LOCAL bAbrir 聽 聽 聽:= {|| lConectado := Conectar_AbrirTablas() }
聽 聽hArchivoIni := HB_ReadIni( Lower( ".\CREDITOS.INI" ) )
聽 聽IF HB_IsNil( hArchivoIni )
聽 聽 聽 MsgStop( "No se pudo leer el archivo de configuraci贸n CREDITOS.INI, contacte al desarrollador del programa." )
聽 聽 聽 RETURN lConectado
聽 聽ELSE
聽 聽 聽 TRY
聽 聽 聽 聽 聽nConexion := Val( hArchivoIni[ "DATOS", "Tipo" ] )
聽 聽 聽 CATCH
聽 聽 聽 聽 聽nConexion := 0
聽 聽 聽 END
聽 聽 聽 DO CASE
聽 聽 聽 CASE nConexion==1
聽 聽 聽 聽 聽nServer := nServidor := ADS_LOCAL_SERVER
聽 聽 聽 聽 聽cServidor := hArchivoIni[ "DATOS", "Conexion1" ]
聽 聽 聽 CASE nConexion==2
聽 聽 聽 聽 聽nServer := nServidor := ADS_REMOTE_SERVER
聽 聽 聽 聽 聽cServidor := hArchivoIni[ "DATOS", "Conexion2" ]
聽 聽 聽 CASE nConexion==3
聽 聽 聽 聽 聽nServer := nServidor := ADS_AIS_SERVER
聽 聽 聽 聽 聽cServidor := hArchivoIni[ "DATOS", "Conexion3" ]
聽 聽 聽 OTHERWISE
聽 聽 聽 聽 聽MsgStop( "El archivo de conexi贸n esta corrupto, contacte al desarrollador del programa." )
聽 聽 聽 聽 聽RETURN lConectado
聽 聽 聽 ENDCASE
聽 聽ENDIF
聽 聽IF !Empty( cServidor )
聽 聽 聽 MsgRun( "Conectando con el servidor de datos, espere un momento.", "CREDITOS", bConectar )
聽 聽 聽 IF !lConectado
聽 聽 聽 聽 聽AdsGetLastError( @cError )
聽 聽 聽 聽 聽MsgStop( "No se ha podido realizar la conexi贸n al servidor de datos: " + FINL + cError + FINL + cServidor )
聽 聽 聽 ELSE
聽 聽 聽 聽 聽oSesion:cPC_Servidor := RTrim( cServidor )
聽 聽 聽 聽 聽MsgRun( "Abriendo tablas de datos, espere un momento", "CREDITOS", bAbrir )
聽 聽 聽 ENDIF
聽 聽ELSE
聽 聽 聽 MsgStop( "El archivo de conexi贸n esta corrupto, contacte al desarrollador del programa." )
聽 聽ENDIF
RETURN lConectado
/*-------------------------------------------------------------------------------------------------*/
FUNCTION Conectar_AbrirTablas()
聽 聽LOCAL lTablasAbiertas := TRUE
聽 聽LOCAL oError
聽 聽TRY
聽 聽 聽 Conectar_AbrirTabla( "CONTROL", 聽 聽 聽 聽 聽"CTRL" )
聽 聽 聽 Conectar_AbrirTabla( "USUARIOS", 聽 聽 聽 聽 "USUA" )
聽 聽 聽 Conectar_AbrirTabla( "FERIADOS", 聽 聽 聽 聽 "FERI" )
聽 聽 聽 Conectar_AbrirTabla( "PLAZOS", 聽 聽 聽 聽 聽 "PLAZ" )
聽 聽 聽 Conectar_AbrirTabla( "ZONAS", 聽 聽 聽 聽 聽 聽"ZONA" )
聽 聽 聽 Conectar_AbrirTabla( "CIUDADES", 聽 聽 聽 聽 "CIUD" )
聽 聽 聽 Conectar_AbrirTabla( "GESTORES", 聽 聽 聽 聽 "GEST" )
聽 聽 聽 Conectar_AbrirTabla( "COBRADORES", 聽 聽 聽 "COBR" )
聽 聽 聽 Conectar_AbrirTabla( "RUTAS", 聽 聽 聽 聽 聽 聽"RUTA" )
聽 聽 聽 Conectar_AbrirTabla( "CLIENTES", 聽 聽 聽 聽 "CLIE" )
聽 聽 聽 Conectar_AbrirTabla( "PROGRAMACION", 聽 聽 "PROG" )
聽 聽 聽 Conectar_AbrirTabla( "PROGRAMACION_BAK", "PBAK" )
聽 聽 聽 Conectar_AbrirTabla( "PRESTAMOS", 聽 聽 聽 聽"PRES" )
聽 聽 聽 Conectar_AbrirTabla( "DIFERIDOS", 聽 聽 聽 聽"DIFE" )
聽 聽 聽 Conectar_AbrirTabla( "MOVIMIENTOS", 聽 聽 聽"MOVI" )
聽 聽 聽 Conectar_AbrirTabla( "FLUJOS", 聽 聽 聽 聽 聽 "FLUJ" )
聽 聽 聽 Conectar_AbrirTabla( "MCOBROSXRUTA", 聽 聽 "MCXR" )
聽 聽 聽 Conectar_AbrirTabla( "DCOBROSXRUTA", 聽 聽 "DCXR" )
聽 聽 聽 Conectar_AbrirTabla( "CAJA", 聽 聽 聽 聽 聽 聽 "CAJA" )
聽 聽 聽 Conectar_AbrirTabla( "COBROXDIA", 聽 聽 聽 聽"CXDI" )
聽 聽 聽 Conectar_AbrirTabla( "COBROXDIAC", 聽 聽 聽 "CXDC" )
聽 聽 聽 Conectar_AbrirTabla( "COBROXDIAT", 聽 聽 聽 "CXDT" )
聽 聽 聽 Conectar_ConfigurarTablas()
聽 聽 聽 DBSelectArea( 0 )
聽 聽CATCH oError
聽 聽 聽 lTablasAbiertas := FALSE
聽 聽 聽 ShowError( oError )
聽 聽END
聽 聽//Adt2Dbf()
RETURN lTablasAbiertas
/*-------------------------------------------------------------------------------------------------*/
PROCEDURE Conectar_AbrirTabla( cTabla, cAlias )
聽 聽USE ( cTabla ) NEW ALIAS ( cAlias ) SHARED
聽 聽IF nServer == ADS_AIS_SERVER
聽 聽 聽 AdsCacheRecords( 100 )
聽 聽ENDIF
RETURN
/*-------------------------------------------------------------------------------------------------*/
PROC Adt2Dbf()
聽 聽SELECT CTRL
聽 聽Mig("control")
聽 聽SELECT USUA
聽 聽Mig("usuarios")
聽 聽SELECT FERI
聽 聽Mig("feriados")
聽 聽SELECT PLAZ
聽 聽Mig("plazos")
聽 聽SELECT ZONA
聽 聽Mig("zonas")
聽 聽SELECT CIUD
聽 聽Mig("ciudades")
聽 聽SELECT GEST
聽 聽Mig("gestores")
聽 聽SELECT COBR
聽 聽Mig("cobradores")
聽 聽SELECT RUTA
聽 聽Mig("rutas")
聽 聽SELECT CLIE
聽 聽Mig("clientes")
聽 聽SELECT PROG
聽 聽Mig("programacion")
聽 聽SELECT PBAK
聽 聽Mig("programacion_bak")
聽 聽SELECT PRES
聽 聽Mig("prestamos")
聽 聽SELECT DIFE
聽 聽Mig("diferidos")
聽 聽SELECT MOVI
聽 聽Mig("movimientos")
聽 聽SELECT FLUJ
聽 聽Mig("flujos")
聽 聽SELECT MCXR
聽 聽Mig("mcobrosxruta")
聽 聽SELECT DCXR
聽 聽Mig("dcobrosxruta")
聽 聽SELECT CAJA
聽 聽Mig("caja")
聽 聽SELECT CXDI
聽 聽Mig("cobroxdia")
聽 聽SELECT CXDC
聽 聽Mig("cobroxdiac")
聽 聽SELECT CXDT
聽 聽Mig("cobroxdiat")
聽 聽RddSetDefault( "ads" )
RETURN
/*-------------------------------------------------------------------------------------------------*/
PROC Mig(cTabla)
聽 聽LOCAL cOldAlias := Alias()
聽 聽LOCAL xT,xT1
聽 聽LOCAL aTab
聽 聽LOCAL n,o,i
聽 聽aTab := DBStruct()
聽 聽FOR x:=1 TO Len( aTab )
聽 聽 聽 IF aTab[ x, 2 ]="D"
聽 聽 聽 聽 聽aTab[ x, 3 ]=8
聽 聽 聽 ENDIF
聽 聽NEXT
聽 聽DbCreate( "d:\dbc\" + (cTabla), aTab, "DBFCDX", .T. )
聽 聽USE ( "d:\dbc\" + (cTabla) ) ALIAS TEMP VIA "dbfcdx"
// 聽 SELECT (cAlias)
//
// 聽 n:=1
// 聽 DO WHILE .T.
// 聽 聽 聽IF Empty( OrdName(n) )
// 聽 聽 聽 聽 EXIT
// 聽 聽 聽ENDIF
// 聽 聽 聽TRY
// 聽 聽 聽 聽 TEMP->( OrdCondSet((cAlias)->( OrdFor(n)),,.t.,,,, nil, nil, nil, nil,, nil, .F., .F., .F., .F.))
// 聽 聽 聽 聽 TEMP->( dbGoTop() )
// 聽 聽 聽 聽 TEMP->( ordCreate(,(cAlias)->( OrdName(n) ), (cAlias)->( OrdKey(n) ), &("{||"+(cAlias)->( OrdKey(n) )+"}") ))
// 聽 聽 聽CATCH o
// 聽 聽 聽 聽 SELECT (cAlias)
// 聽 聽 聽 聽 ?cTabla,(cAlias)->( OrdName(n) ), (cAlias)->( ordKey(n) )
// 聽 聽 聽END
// 聽 聽 聽++n
// 聽 ENDDO
聽 聽SELECT ( cOldAlias )
聽 聽WaitOn("Procesando: " + cTabla )
聽 聽i:=0
聽 聽GO TOP
聽 聽DO WHILE !Eof()
聽 聽 聽 TEMP->( DBAppend() )
聽 聽 聽 FOR x:=1 TO FCount()
聽 聽 聽 聽 聽xT := FieldGet( x )
聽 聽 聽 聽 聽TEMP->( FieldPut( x, xT ) )
聽 聽 聽 NEXT
聽 聽 聽 SKIP
聽 聽 聽 IF Mod( ++i, 100 )=0
聽 聽 聽 聽 聽SysRefresh()
聽 聽 聽 ENDIF
聽 聽ENDDO
聽 聽WaitOff()
聽 聽TEMP->( DBCloseArea() )
聽 聽SELECT (cOldAlias)
RETURN