Filtrando datos

Post Reply
Loren
Posts: 458
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Filtrando datos

Post by Loren »

Compañeros,

Tengo DBF-NTX y a la hora de optimizar el filtro:

Code: Select all

set filter to clientes->fecha>=dDesde .and. clientes->fecha<=dHasta
Así funciona perfectamente pero en Red Local tarda 10seg. aprox.

Para optimizar el filtro pretendo hacer lo siguiente... pero no filtra correctamente:

Code: Select all

cfiltr="fecha>='"+dtoc(dDesde)+"' .and. fecha<='"+dtoc(dHasta)+"'"
bfiltr="{||"+cfiltr+"}"
dbsetfilter(&bfiltr,cfiltr)
 
o incluso utilizando ADS mediante

Code: Select all

clientes->(AdsSetAOF( cfiltr ))
... pero nada ninguna de las 2 opciones funciona correctamente, supongo que es porque _ fecha son DATE y al armar la cadena se pasa a CARACTER.

Además de migrar a CDX y utilizar SCOPES.... ¿mediante NTX existe otra solución?

Mil gracias.
LORENZO.
JARO
Posts: 30
Joined: Thu Oct 25, 2007 7:54 pm

Re: Filtrando datos

Post by JARO »

Buenas, siendo fecha un campo DATE deberías componer la cadena del filtro de la siguiente forma:
cfiltr="fecha>=ctod('"+dtoc(dDesde)+"') .and. fecha<=ctod('"+dtoc(dHasta)+"')"
Se estaba aplicando el filtro sobre una cadena no sobre un DATE
Espero que te sirva.
Francisco Horta
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: Filtrando datos

Post by Francisco Horta »

lorenzo
que taal lo mejor es que te cambies a cdx, no requiere de mucho, y es mas fiable y rapido,,
te recomendaria que armaras tus indices con DTOS(), es mas practico y facil
cfiltro := "fecha>='"+dtos(dDesde)+"' .and. fecha<='"+dtos(dHasta)+"'"
bfiltro := "{||"+cfiltro+"}"
dbsetfilter(&bfiltro,cfiltro)
saludos
paco
____________________
Paco
Post Reply