O.T. velocidad de ADS LOCAL con archivos ADT

Post Reply
Marcelo Via Giglio
Posts: 1033
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

O.T. velocidad de ADS LOCAL con archivos ADT

Post by Marcelo Via Giglio »

Holas,

una duda pero hoy realmente me quede preocupado al hacer un ciclo sobre un archivos ADT y este tardo minutos sobre 10000 registros, un ejemplo tan simple como este

dbf -> ( DBGoTop() )
DO WHILE ! dbf -> ( EOF() )
dbf -> fielld1 := dbf -> field2
dbf -> ( DBSkip() )
ENDDO

nada mas que eso y me ponia a dormir, sera que esto es normal o estoy haciendo algo mal, o hay alguna alternativa para que esto vuele como con los DBFCDX nativos
comentarios?? Rene?

saludos

Marcelo
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

Como esta tu archivo de configuracion ADSLOC32.CFG ?
Saludos
R.F.
Marcelo Via Giglio
Posts: 1033
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Post by Marcelo Via Giglio »

Rene,

gracias por el interes, abajo adjunto el mencionado archivo de configuracion que esta en el mismo directorio de la aplicacion (le quite parte de los comentarios para bajar el peso del mensaje)

No se que podria ser, espero tengas alguna idea

saludos y gracias

Marcelo


[SETTINGS]
; Advantage Local Server configuration file

; Number of Connections
; Default = 20; Range = 1 - No upper limit
CONNECTIONS=20
;
; Number of Tables
; Default = 50; Range = 1 - No upper limit
TABLES=50
;
; Number of Index Files
; Default = 75; Range = 1 - No upper limit
INDEXES=75
;
; Number of Data Locks
; Default = 500; Range = 1 - No upper limit
LOCKS=500
;
; Maximum Size of Error Log (in KBytes)
; Default = 1000 KBytes; Range = 1 KByte - No upper limit
ERROR_LOG_MAX=1000
;
; Error Log and Assert Log Path
; Default = C:\
ERROR_ASSERT_LOGS=
;
ANSI_CHAR_SET=
;
OEM_CHAR_SET=
;
; Local File Flush Frequency (in milliseconds)
; Default = 20000 ms (20 seconds); Range = 0 ms - No upper limit
FLUSH_FREQUENCY=20000
;
LOWERCASE_ALL_PATHS=
Marcelo Via Giglio
Posts: 1033
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Post by Marcelo Via Giglio »

Mas pistas,

si utilizo SQL, y creo primero una tabla temporal la cosa va mucho mas rapido, esto es un ejemplo

AdsConnect( ".\data\" ,1)
adsRightsCheck( .F. )

Select 100
ADSCreateSQLStatement("SQLarea",3)

AdsExecuteSqlDirect( " select * into #temo from dbf " )
sqlarea -> ( DBCLOSEAREA() )
ADSCreateSQLStatement("SQLarea",3)
AdsExecuteSqlDirect( " update #temp set field1=field2" )


esto va miles que digo millones de veces mas rapido

que raro?????????? creo que debere escribir al foro de xHarbour, solo que mi problema sera que no podre actualizarme con el ultimo xHarbour creo ya que utilizo FWH 2.6 de abril 2005

saludos
Marcelo Via Giglio
Posts: 1033
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Post by Marcelo Via Giglio »

Holas,

he solucionado el problema, para la gente que le interese, el problema se ocasiona cuando uno hace uso de ARC para importar tablas DBF a CDX, ya tuve prioblemas con campos que tenian espacios al final, la importacion trunca esta informacion.

Conclusion, no utilizar ARC para importar tablas, mejor hacerlo a mano

saludos y gracias

Marcelo
Post Reply