Para Mr Antonio Linares Tamanio de Registro

Para Mr Antonio Linares Tamanio de Registro

Postby Arvisnet » Mon Mar 24, 2008 12:26 am

En un post anterior lei lo siguiente:

<<<<<<<<
La función At() es extremadamente rápida ya que practicamente esta implementada al 100% en el propio microprocesador.

Lo que es lento es ir leyendo los registros de uno en uno. La solución a esto, aunque suene increible, es cargar de una vez toda la DBF en memoria usando MemoRead() y entonces hacer el At():

cDatos = MemoRead( "nombre.dbf" )
nPos = At( "lo que busco", cDatos )

Dividiendo el valor devuelto por At() por el tamaño de un registro (+ el tamaño de la cabecera) sabemos inmediatamente en que registro estamos. El siguiente At() se haría a partir de donde se encontró la primera ocurrencia.
>>>>>

se me hizo algo muy interesante ya que tengo una aplicacion que se me hizo super lenta en un proceso de busqueda / actualizacion..

Como se obtiene el tamanio de un registro + el tamanio de la cabecera??

saludos y Gracias.
Arnulfo
Arvisnet
 
Posts: 51
Joined: Sat Nov 19, 2005 8:30 pm

Postby Antonio Linares » Mon Mar 24, 2008 8:49 am

El tamaño de la cabecera lo devuelve la función Header()

El tamaño de un registro lo devuelve la función RecSize()

Según la documentación de Clipper:

#define DbfSize() (HEADER() + (RECSIZE() * LASTREC()) + 1)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42159
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Antonio Linares, Google [Bot] and 42 guests