Page 1 of 1

Archivos temporales sin que los sume al diccionario

Posted: Fri Sep 10, 2010 10:45 am
by hugotheler
Hola

Como tendría que hacer para trabajar con archivos temporales pero que estos no se sumen al diccionario de datos. (ADS ), es decir trabajarlo a estos archivos como tablas libres.

xharbour 0.99.71
ADS 8.1


Hugo

Re: Archivos temporales sin que los sume al diccionario

Posted: Fri Sep 10, 2010 1:27 pm
by Patricio Avalos Aguirre
Hola

yo lo hago de esta manera..

Code: Select all

   cFileTemp := cNewFileName( ViewUsu():cPathTmp + "\TEMPO", "DBF" )
   cFileCdx  := cNewFileName( ViewUsu():cPathTmp + "\TEMPO", "CDX" )

   dbCreate( cFileTemp, ;
                            { { "cod_prod", "c", 15,0},;
                              { "des_prod", "C", 40,0},;
                              { "Stock",    "n", 10,0},;
                              { "cant1",    "n", 10,0},;
                              { "cant2",    "n", 10,0},;
                              { "cant3",    "n", 10,0},;
                              { "cant4",    "n", 10,0}}, "DBFCDX", .t., "TEMP" )

    INDEX ON FIELD->COD_PROD TAG CODIGO TO (cFileCdx)
    SET INDEX TO (cFileCdx)
 

Re: Archivos temporales sin que los sume al diccionario

Posted: Fri Sep 10, 2010 1:32 pm
by Marcelo Via Giglio
Hola,


prueba abrir la tabla especificando el RDD de manera explicita

USE temp INDEX temp VIA "DBFCDX" NEW.......... u otro RDD

saludos

Marcelo

Re: Archivos temporales sin que los sume al diccionario

Posted: Fri Sep 10, 2010 2:26 pm
by hugotheler
Hola

Gracias Patricio por tu respuesta pero no logro que funcione.

Pregunta , que indica los parametros 4 y 5 del dbcreate..?

Gracias

Re: Archivos temporales sin que los sume al diccionario

Posted: Fri Sep 10, 2010 2:43 pm
by JavierVital
Hola que tal, yo tengo el mismo problema, usando tablas ADT
y lo hago asi .

Code: Select all

cCrea := cTemp //+ ".ADT"
    AADD(aTempora,{"ARTICULO","C",15,0})
    AADD(aTempora,{"NOMBRE"  ,"C",60,0})
    AADD(aTempora,{"CAJAS","N",15,3}) //  999,999.99
    AADD(aTempora,{"PIEZAS","N",15,3}) //  999,999.99
    AADD(aTempora,{"PRECIO"  ,"N",15,4}) //  99,999.99
    AADD(aTempora,{"IMPORTE" ,"N",15,2}) // 999,999.99
    AADD(aTempora,{"DESCTO"  ,"N",06,2}) //     999.99
    AADD(aTempora,{"IMPDES"  ,"N",09,2}) //  99,999.99
    AADD(aTempora,{"GTOTAL"  ,"N",10,2}) // 999,999.99
    AADD(aTempora,{"SERIES"  ,"C",25,0})
    AADD(aTempora,{"DESCTOA" ,"N",06,2}) //     999.99
    AADD(aTempora,{"RENGLON" ,"N",05,0}) //         99
    AADD(aTempora,{"PRECIOA" ,"N",09,2}) //  99,999.99
    AADD(aTempora,{"CDESCTO" ,"C",05,0}) //  99,999.99
    AADD(aTempora,{"CANTIDAD","N",09,2}) //  99,999.99
    AADD(aTempora,{"CODIGO","C",15,0})
    AADD(aTempora,{"COSTOC"  ,"N",15,4}) //  99,999.99
    AADD(aTempora,{"COSTOP"  ,"N",15,4}) //  99,999.99
    DbCreate(cPathDAT+cCrea,aTempora,DbSetDriver())
 
y despues del Dbcreate ya lo tengo en el diccionario de datos
y cuando habro la conexion con el Architect ahi me muestra todos los temporales y aunque los borre de la carpeta en el diccionario siguen apareciendo
si alguien tendria alguna otra solucion?

Saludos.

Re: Archivos temporales sin que los sume al diccionario

Posted: Fri Sep 10, 2010 3:26 pm
by Patricio Avalos Aguirre
te adjunto la sintaxis

Code: Select all

DbCreate()
Creates an empty database from a structure definition array. 
Syntax
DbCreate( <cDatabase> , ;
          <aStructure>, ;
         [<cDriver>]  , ;
         [<lNewArea>] , ;
         [<cAlias>]     ) --> NIL

 
lo otro revisa que esten estas lineas

Code: Select all

procedure RddInit()
    REQUEST HB_LANG_ES
    REQUEST DBFCDX, DBFFPT
    REQUEST ADS
    REQUEST OrdKeyCount, OrdKeyNo, OrdKeyGoto, ADSKeyNo, AdsSetRelKeyPos, AdsGetRelKeyPos
return
 

Re: Archivos temporales sin que los sume al diccionario

Posted: Fri Sep 10, 2010 4:18 pm
by JavierVital
Patricio, un apregunta, los temporales los usas en el mismo directorio donde se encuentran tus tablas ?
porque yo lo tengo en el mismo directorio tengo mis tablas y mis temporales
solo el diccionario esta una carpeta antes de los datos.

Re: Archivos temporales sin que los sume al diccionario

Posted: Fri Sep 10, 2010 4:30 pm
by Patricio Avalos Aguirre
Javier:

Los temporales se crean el el disco local, ya que el sistema estan en todos los PC

Code: Select all

#Define DRIVELOCAL DiskName() + ":\"+Curdir()
:cPathTmp := DRIVELOCAL + "\TEMPORAL"

y las tablas se encuentran en un servidor en una carpeta SOLO LECTURA, ya que estan con ADS SERVER

Re: Archivos temporales sin que los sume al diccionario

Posted: Fri Sep 10, 2010 8:46 pm
by hugotheler
Limpie el código y funciono !!

Gracias Patricio por tu tiempo.

Yo también tengo distribuido el sistema en cada equipo y los temporarios los genero en el una carpeta sobre el server.
Es conveniente, desde el punto de vista de la velocidad, generarlo en cada equipo.?


Hugo

Re: Archivos temporales sin que los sume al diccionario

Posted: Fri Sep 10, 2010 9:43 pm
by Patricio Avalos Aguirre
Hugo:

Pienso que por logica sobre modo local debiera ser mucha mas rapido que por server
ya que al crear una dbf temporal ya no seria cliente / servidor si no que un dbf normal..

lo otro como es temporal al final de la rutina hay que eliminarlos..

Re: Archivos temporales sin que los sume al diccionario

Posted: Sun Sep 12, 2010 12:01 am
by JavierVital
Patricio, ya lo intente como comentas con los temporales.
El detalle es que sigue poniendo el nombre del temporal en el diccionario, donde quiera que pongas el temporal.
Yo uso temporales ADT, voy a probar usando temporales DBF aver que pasa.

Saludos.