Para Mr Antonio Linares Tamanio de Registro

Post Reply
Arvisnet
Posts: 51
Joined: Sat Nov 19, 2005 8:30 pm
Contact:

Para Mr Antonio Linares Tamanio de Registro

Post by Arvisnet »

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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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
Post Reply