FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper Scope y Filtros
Posts: 142
Joined: Sun Oct 09, 2005 01:36 AM
Scope y Filtros
Posted: Sun Nov 20, 2005 09:16 PM

Estimados Colegas

Quiero hacer un scope y dentro del mismo filtrar hasta ahora
el scope me funciona perfecto, lo que no me funciona es
el filter que en vez de hacerlo sobre el scope los hace
sobre la dbf entera y me tarda un tiempo enorme ya que
son 500000 registros, si alguien me puede orientar
que estoy haciendo mal.

desde ya muchisimas gracias

databaselab2002@yahoo.com

include "FiveWin.ch"

include "ord.ch" // do clipper (CDX)

REQUEST DBFCDX

//----------------------------------------------------------------------------//

function Main()

SET _3DLOOK ON
rddSetDefault("DBFCDX")
USE MD
MD->(ORDLISTADD("MDL"))

MD->( OrdScope( 0,"AGRELO"))
MD->( OrdScope( 1,"AGRELO"))
MD->( dbGoTop())
* SET FILTER to upper( MD->PER_NOMBRE ) $ "CATAL"
SET FILTER to "CATAL" $ upper( MD->PER_NOMBRE )
// PROBE SET FILTER DE LAS DOS MANERAS
*MD->( dbGotop())


Browse()

USE

return nil



Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Scope y Filtros
Posted: Mon Nov 21, 2005 05:07 AM

¿Porque no utilizas un índice temporal?

Si quieres un ejemplo dime el nombre del campo por el que está indexado el fichero índice.

Manuel

Un saludo



Manuel
Posts: 142
Joined: Sun Oct 09, 2005 01:36 AM
Scopes y Filtros
Posted: Mon Nov 21, 2005 01:32 PM

Gracias Manuel

Se puede crear un indice temporal con operador $

ej index on clientes-> Nombre to Nombre for/while Nombre $ "Catal"

La idea es crear un indice temporal con los datos del scope que el
campo nombre contenga "Catal" en cualquier sector del mismo

desde ya muchisimas gracias
Fabian

Databaselab2002@yahoo.com.ar

Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Scope y Filtros
Posted: Mon Nov 21, 2005 10:55 PM

Supongo que tenemos el fichero clientes.dbf indexado por el campo Nombre. Queremos buscar una palabra que esté en cualquier sitio del registro:

ERASE iTem.cdx
INDEX ON clientes->NOMBRE TO iTem FOR "Catal" $ clientes->NOMBRE
SET INDEX TO iTem, clientes

Esto será lento (mucho mas si está en red).

Lo que no comprendo es como en tu primer mensaje ponias un Scope en "Agrelo".

Un saludo

Un saludo



Manuel

Continue the discussion