Filtrando datos

Filtrando datos

Postby Loren » Sat Dec 03, 2011 9:20 am

Compañeros,

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

Code: Select all  Expand view
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  Expand view
cfiltr="fecha>='"+dtoc(dDesde)+"' .and. fecha<='"+dtoc(dHasta)+"'"
bfiltr="{||"+cfiltr+"}"
dbsetfilter(&bfiltr,cfiltr)
 


o incluso utilizando ADS mediante
Code: Select all  Expand view
clientes->(AdsSetAOF( cfiltr ))


... pero nada ninguna de las 2 opciones funciona correctamente, supongo que es porque los campos 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.
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Re: Filtrando datos

Postby JARO » Sat Dec 03, 2011 10:35 am

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.
JARO
 
Posts: 30
Joined: Thu Oct 25, 2007 7:54 pm

Re: Filtrando datos

Postby Francisco Horta » Sat Dec 03, 2011 7:52 pm

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
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: richard-service and 37 guests