El tema de crear y leer archivos "Temporales"
-
- Posts: 188
- Joined: Mon Jun 10, 2013 6:40 pm
El tema de crear y leer archivos "Temporales"
Tal vez a alguien ya paso por esto, y me podrían echar un hilo.
(Uso ADS, con tablas libres)
-Mi sistema esta en un Servidor
-En todas las maquinas les instale el sistema direccionando de donde abrir las tablas "\\servidor\…."
-Ahora toca que los temporales se creen en la PC local
1.- Con DbCreate - no crea nada
pues como no lo creaba , decidi poner un archivo "temporal.adt" en la maquina local
2.- Con DbUseArea - no puede abrir
pues no abre el temporal que puse manualmente
DbUseArea(.T.,DbSetDriver(),"C:\NUEVO\TEMPORAL\TEMPORALV","TEMPORALV",.F.,.F.)
y pues no me funciona crear y abrir archivos que están el la PC local.
Saludos.
(Uso ADS, con tablas libres)
-Mi sistema esta en un Servidor
-En todas las maquinas les instale el sistema direccionando de donde abrir las tablas "\\servidor\…."
-Ahora toca que los temporales se creen en la PC local
1.- Con DbCreate - no crea nada
pues como no lo creaba , decidi poner un archivo "temporal.adt" en la maquina local
2.- Con DbUseArea - no puede abrir
pues no abre el temporal que puse manualmente
DbUseArea(.T.,DbSetDriver(),"C:\NUEVO\TEMPORAL\TEMPORALV","TEMPORALV",.F.,.F.)
y pues no me funciona crear y abrir archivos que están el la PC local.
Saludos.
-
- Posts: 179
- Joined: Sun Jan 31, 2010 3:30 pm
- Location: Bucaramanga - Colombia
Re: El tema de crear y leer archivos "Temporales"
Mi experiencia..
1. ADS, con tablas libres ADSCDX, en servidor remoto
2. Temporales en formato DBFCDX
3. Temporales en disco local
4. Filtros especiales , con indices en disco local y temporary
Johnson Russi
Re: El tema de crear y leer archivos "Temporales"
Russimicro, buenas:
Yo hago siempre uso de 2 variables declaradas como públicas: "Path_Servidor" y "Path_PC_local", donde guardo los path respectivos de uno y otro PC.
Cuando quiero usar las DBF o CDX del servidor utilizo:
Cuando quiero usar las DBF o CDX del PC_Local utilizo:
saludos.
Yo hago siempre uso de 2 variables declaradas como públicas: "Path_Servidor" y "Path_PC_local", donde guardo los path respectivos de uno y otro PC.
Cuando quiero usar las DBF o CDX del servidor utilizo:
Code: Select all
set default to &Path_Servidor
...
use mitablaDbf1 shared index ...
use mitablaDbf2 shared index ...
...
Code: Select all
set default to &Path_PC_local
...
use mitablaDbfLocal1 shared index ...
use mitablaDbfLocal2 shared index ...
index on ....
...
Re: El tema de crear y leer archivos "Temporales"
Hola,
Sería bueno tener la descripcion y codigos de error para asi poder dar una mejor ayuda.
Saludos
Sería bueno tener la descripcion y codigos de error para asi poder dar una mejor ayuda.
Saludos
-
- Posts: 179
- Joined: Sun Jan 31, 2010 3:30 pm
- Location: Bucaramanga - Colombia
Re: El tema de crear y leer archivos "Temporales"
Code: Select all
cPatTab := path local o remoto, etc
cNomTab := alias de la tabla
vIndTab:= vector con nombre del indices
lModTab := modo compartido, exclusivo
cNomDri := driver : DBFCDX, ADS, SQLRDD, ETC
FUNCTION lUsaTab( cPatTab,cNomTab,cAliTab,vIndTab,lModTab,cNomDri)
LOCAL cDriVer := cNomDri
local lShared := lModTab
IF M->lSerAds .AND. cDriVer == "ADS" // SERVIDOR ADS ACTIVO
DO WHILE .T.
IF SELECT(cAliTab) == 0
TRY
IF !lAdsRemInt // NO INTERNET
IF ( LEN(vIndTab) > 0 ) .AND. FILE(cPatTab+vIndTab[1])
IF lShared
USE (cPatTab+cNomTab) ALIAS &cAliTab SHARED NEW VIA (cDriVer) INDEX (cPatTab+vIndTab[1]) CONNECTION oConSql
ELSE
USE (cPatTab+cNomTab) ALIAS &cAliTab EXCLUSIVE NEW VIA (cDriVer) INDEX (cPatTab+vIndTab[1]) CONNECTION oConSql
ENDIF
ELSE
IF lShared
USE (cPatTab+cNomTab) ALIAS &cAliTab SHARED NEW VIA (cDriVer) CONNECTION oConSql
ELSE
USE (cPatTab+cNomTab) ALIAS &cAliTab EXCLUSIVE NEW VIA (cDriVer) CONNECTION oConSql
ENDIF
ENDIF
ELSE // ADSREM - INTERNET
IF ( LEN(vIndTab) > 0 )
IF lShared
USE (cPatTab+cNomTab) ALIAS &cAliTab SHARED NEW VIA (cDriVer) INDEX (cPatTab+vIndTab[1]) CONNECTION oConSql
ELSE
USE (cPatTab+cNomTab) ALIAS &cAliTab EXCLUSIVE NEW VIA (cDriVer) INDEX (cPatTab+vIndTab[1]) CONNECTION oConSql
ENDIF
ELSE
IF lShared
USE (cPatTab+cNomTab) ALIAS &cAliTab SHARED NEW VIA (cDriVer) CONNECTION oConSql
ELSE
USE (cPatTab+cNomTab) ALIAS &cAliTab EXCLUSIVE NEW VIA (cDriVer) CONNECTION oConSql
ENDIF
ENDIF
ENDIF
CATCH
IF cVerMen == NIL
MYMEN("Error 1. En apertura de tablas. Verifique si hay procesos en ejecuci¢n : "+cAliTab+"-"+cPatTab+cNomTab)
ENDIF
RETURN .F.
END
TRY
IF NETERR()
MENSAJES('Error. Tabla abierta por otra estaci¢n : "'+cNomTab+'".','Verif¡quelo','N')
USE
SW := 1
ENDIF
CATCH
IF cVerMen == NIL
MYMEN("Error 2. En apertura de tablas. Verifique si hay procesos en ejecuci¢n : "+cAliTab+"-"+cPatTab+cNomTab)
ENDIF
RETURN .F.
END
ELSE
SELECT ( SELECT(cAliTab) )
SET FILTER TO
SET RELATION TO
ENDIF
IF cDriVer == "ADS"
IF cAliTab == "SET" .OR. cAliTab == "SET_OTR" .OR. cAliTab == "SE2"
// NO ENCRIPTA
ELSE
PARAMETRO(42,@cEncTab) // activa modo encriptacion
IF cEncTab == "D" .OR. lDesCri <> NIL
IF RDDSETDEFAULT() == "ADS"
IF (cAliTab)->( AdsIsTableEncrypted() )
IF lShared // SI FUERON ABIERTAS EN MODO COMPORTIDO .. LAS CIERRA Y ABRE EN EXCLUSIVO
CLOSE (cAliTab)
TRY
IF !lAdsRemInt // NO INTERNET
IF ( LEN(vIndTab) > 0 ) .AND. FILE(cPatTab+vIndTab[1])
USE (cPatTab+cNomTab) ALIAS &cAliTab EXCLUSIVE NEW VIA (cDriVer) INDEX (cPatTab+vIndTab[1]) CONNECTION oConSql
ELSE
USE (cPatTab+cNomTab) ALIAS &cAliTab EXCLUSIVE NEW VIA (cDriVer) CONNECTION oConSql
ENDIF
ELSE // ADSREM - INTERNET
IF ( LEN(vIndTab) > 0 )
USE (cPatTab+cNomTab) ALIAS &cAliTab EXCLUSIVE NEW VIA (cDriVer) INDEX (cPatTab+vIndTab[1]) CONNECTION oConSql
ELSE
USE (cPatTab+cNomTab) ALIAS &cAliTab EXCLUSIVE NEW VIA (cDriVer) CONNECTION oConSql
ENDIF
ENDIF
CATCH
IF cVerMen == NIL
MYMEN("Error 1.1. En apertura de tablas. Verifique si hay procesos en ejecuci¢n : "+cAliTab+"-"+cPatTab+cNomTab)
ENDIF
RETURN .F.
END
ENDIF
// ALERTA("DESENCRIPTO : "+cAliTab)
(cAliTab)->( AdsEnableEncryption(cClaDbf) )
(cAliTab)->( AdsDecryptTable() )
lDesCri := NIL
SW_ENCRIPTAR := .F.
LOOP
ENDIF
ENDIF
ENDIF
IF cEncTab == "E" .AND. lDesCri == NIL .AND. SW_ENCRIPTAR
IF RDDSETDEFAULT() == "ADS"
IF M->lEncTabADS // EXEPCION PARA TABLA DE PARAMETROS
IF (cAliTab)->( AdsIsTableEncrypted() )
AdsEnableEncryption(cClaDbf)
// alertA("ENABLED : "+cAliTab)
ELSE
CLOSE (cAliTab)
TRY
IF !lAdsRemInt // NO INTERNET
IF ( LEN(vIndTab) > 0 ) .AND. FILE(cPatTab+vIndTab[1])
USE (cPatTab+cNomTab) ALIAS &cAliTab EXCLUSIVE NEW VIA (cDriVer) INDEX (cPatTab+vIndTab[1]) CONNECTION oConSql
ELSE
USE (cPatTab+cNomTab) ALIAS &cAliTab EXCLUSIVE NEW VIA (cDriVer) CONNECTION oConSql
ENDIF
ELSE // ADSREM - INTERNET
IF ( LEN(vIndTab) > 0 )
USE (cPatTab+cNomTab) ALIAS &cAliTab EXCLUSIVE NEW VIA (cDriVer) INDEX (cPatTab+vIndTab[1]) CONNECTION oConSql
ELSE
USE (cPatTab+cNomTab) ALIAS &cAliTab EXCLUSIVE NEW VIA (cDriVer) CONNECTION oConSql
ENDIF
ENDIF
CATCH
IF cVerMen == NIL
MYMEN("Error 1.1. En apertura de tablas. Verifique si hay procesos en ejecuci¢n : "+cAliTab+"-"+cPatTab+cNomTab)
ENDIF
RETURN .F.
END
(cAliTab)->( AdsEnableEncryption(cClaDbf) )
(cAliTab)->( AdsEncryptTable() )
// alertA("ENCRIPTA : "+cAliTab)
CLOSE (cAliTab)
LOOP
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
EXIT
ENDDO
ELSE // SQLRDD Y DBFCDX
IF cDriVer == NIL
cDriVer := RDDSETDEFAULT()
ENDIF
IF SELECT(cAliTab) == 0
TRY
SW := 0
IF ( cDriVer == "SQLRDD" .OR. cDriVer == "SQLEX" )
//cNomTab := LOWER(cNomTab)
DBUSEAREA(.T.,cDriVer,cPatTab+cNomTab,cAliTab,lShared,lReaOnl,NIL,oConSql) // oConSql = OBJETO DE CONEXION AL SERVER SQLRDD
ELSE
DBUSEAREA(.T.,cDriVer,cPatTab+cNomTab,cAliTab,lShared,lReaOnl,NIL)
ENDIF
CATCH
IF cVerMen == NIL
MYMEN("Error. En apertura de tablas. Verifique si hay otros procesos en ejecuci¢n o si tiene permisos en la empresa destino : "+cAliTab+"-"+cPatTab+cNomTab)
ENDIF
RETURN .F.
END
TRY
IF NETERR()
IF cVerMen == NIL
MENSAJES("Error. Tabla abierta por otra estaci¢n : "+cNomTab,"Verif¡quelo","N")
ENDIF
USE
SW := 1
ENDIF
CATCH
IF cVerMen == NIL
MYMEN("Error 4. En apertura de tablas. Verifique si hay otros procesos en ejecuci¢n : "+cAliTab+"-"+cPatTab+cNomTab)
ENDIF
RETURN .F.
END
IF SW == 1
SW := 0
RETURN .F.
ENDIF
ELSE
SELECT ( SELECT(cAliTab) )
SET FILTER TO
SET RELATION TO
ENDIF
ENDIF
RETURN .T.
-
- Posts: 188
- Joined: Mon Jun 10, 2013 6:40 pm
Re: El tema de crear y leer archivos "Temporales"
Al tratar de abrir , este es el error que me marca
Puse ese archivo "TEMPORALV" en la carpeta local "C:\TEMPORAL"
Ya vi ese erro y me dice :
Alguien sabe como resolverlo.
Code: Select all
Application
===========
Path and name: C:\nuevo\admin.exe (32 bits)
Size: 6,452,736 bytes
Time from start: 0 hours 0 mins 7 secs
Error occurred at: 20/08/2018, 10:59:48
Error description: Error ADSADT/5024 Open error: C:\temporal\TEMPORALV
Ya vi ese erro y me dice :
Code: Select all
5024 AE_INVALID_CONNECTION_HANDLE
Advantage Error Guide
Advantage does not have a connection open with the specified handle.
-
- Posts: 188
- Joined: Mon Jun 10, 2013 6:40 pm
Re: El tema de crear y leer archivos "Temporales"
Hice pruebas asi :
Algo esta mal ?
Code: Select all
cPathDAT := "\\servidor\sistema\datos\"
hConnec := ADSConnect(cPathDAT) // Esto me Retorna un .T.
cPathTEM := "c:\nuevo\temporal\"
bConnec := ADSConnect(cPathTEM) // Esto me retorna un .F.
Re: El tema de crear y leer archivos "Temporales"
Como ha comentado algun compañero, puedes utilizar el driver DBFCDX para los archivos locales.
-
- Posts: 188
- Joined: Mon Jun 10, 2013 6:40 pm
Re: El tema de crear y leer archivos "Temporales"
Pues como dijeron "DBFCDX" solo asi se pudo
Tablas en el servidor "ADT"
Temporales en PC local "DBF"
Y pues funcionando, gracias por su ayuda.
Tablas en el servidor "ADT"
Temporales en PC local "DBF"
Code: Select all
Para Crearlo asi :
DbCreate(cCrea,aTempora,"DBFCDX")
Para Abrirlo asi :
DbUseArea(.T.,"DBFCDX",cPathTEM +"TEMPORALV","TEMPORALV",.F.,.F.)
Y pues funcionando, gracias por su ayuda.