Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Busqueda Lenta por Rango de Fechas.... (https://www.clubdelphi.com/foros/showthread.php?t=20007)

AGAG4 02-04-2005 21:57:33

Busqueda Lenta por Rango de Fechas....
 
Tengo la siguiente tabla en dBase T_Mov.dbf con los Campos:
Fecha , Tipo Mov Factura
01/01/2000 FM 314567
01/01/2000 FM 314568
01/01/2000 FM 314569
01/01/2000 FM 314570
.....

Tiene 1 indice dtos(FECHAMOV)+TIPOMOV+FACTURA que se llama idx_Mov.ntx

Nota: No quiero agregar otro indice, el motivo es porque ya no me permite el compilador de Clipper hacerlo .

Esto lo hago en Delphi:
Tengo un Componente para manipular NTX de clipper que se llama VKDBFDataSet, lo configuro y hago lo siguiente, antes de buscar le asigno el indice para que me los ordene, pero al buscar con FindNearest ó Locate, Busco primero por el Rango Inicial de la Fecha de esta forma:
Código Delphi [-]
FindNearest(['01/01/2000', 'FM']);
ó
Locate('FECHAMOV;TIPOMOV', VarArrayOf(['01/01/2000', 'FM']), [loCaseInsensitive,loPartialKey]
Si no la encuentra tengo que sumarle 1 día para VER SI EXISTE, Si No Existe Entonces Continua el Ciclo hasta encontrar el Día más proximo a la Fecha Inicial, pero Si lo encuentra ahora Toma los datos de esa fecha hasta que sea menor a la Fecha Final.
Como ven es algo teodico, pero lo que me pasa es que es LENTISIMO para encontrar la Fecha INICIAL, Agradecería como Encontrar la forma de que sea más rápido sin añadir un indice....

Que tengan buen día.

marcoszorrilla 02-04-2005 22:16:17

Y por qué no permite el compilador de Clipper agregarlo?

Un Saludo.

AGAG4 02-04-2005 22:19:11

Por....
 
No me permite agregar otro indice porque ha llegado al limite de Indices que permite Clipper, esa es la razón por la que ando buscando como hacerlo sin apoyarme con un indice y no puedo Eliminar algun Indice porque la Aplicación los Usa todos....

Saludos.

marcoszorrilla 02-04-2005 22:22:45

Y cuantos índices tienes, porque yo trabajando con clipper nunca he tenido ese problema.

Un Saludo.

AGAG4 05-04-2005 01:21:52

Uso
 
Uso 54 indices, pero aprovechando, de casualidad usted no usa algun componente para los NTX en delphi????, lo que pasa es que por lo que ve el GotoNearest no me funciona como debíera.

Gracias.

AGAG4 06-04-2005 18:51:53

oki
 
Ya resolví mi problema con los componentes que manipulan NTX, tuvimos que moverle el Código al mismo componente para que realizará las busquedas Suaves de las que le comente, lo que pasa es que hay una función que se llama FindKey donde le cambiamos solo el parámetro SoftSeek a true ya con eso funciono el GotoNearest.... menciono esto por si alguien se mete en este aprieto con estos componentes.... Gracias MarcosZorrilla por sus respuestas.
Código Delphi [-]
SoftSeek:=true;
FindKey(Key, false, SoftSeek);

Saludos.


La franja horaria es GMT +2. Ahora son las 07:50:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi