Página 1 de 1

Filtragem de Dados Lenta com Set Filter

Enviado: 09 Mar 2007 17:40
por UKclipper
Olá, pessoal!

Tenho uma base de dados com cerca de 694347 registros e o SET FILTER já está lento demais para a filtragem dos dados. Existe alguma forma mais rápida de filtrar dados no Clipper?

Enviado: 09 Mar 2007 17:49
por Clipper
Sim existem várias formas, você pode criar um Indice com filtro por exemplo :

INDEX ON CODIGO FOR ESTOQUE>100 TO ARQIND
INDEX ON NOME FOR TIPO="MP" TO ARQIND2

Porém...

O ideal seria você usar o driver NSX da SIX3 pois ele te dá muitos recursos de filtragem, nessa área é imbátivel, eu não uso por isso não vou passar maiores detalhes, mas basta fazer uma busca que você irá encontrar muito material. Busque por SIX ou NSX.

Até logo.

Marcelo

Temporários...

Enviado: 09 Mar 2007 18:22
por guidelli
Na empresa que trabalho, havia uma rotina de relatórios que era muuuuito lerda, só que nenhum cliente reclamava pelo fato de estarem acostumados e conformados.
Corria o arquivo todo de contas a receber, pra pegar uma faixa só de contas. Claro que não deve ser o teu caso, mas na minha idéia, pode ser resolvido.
Criei um arquivo temporário através de uma rotina que simplifica isso.. só passo o "escopo" e a rotina me retorna o nome do temporário.

Aliás... essa questão de escopo tem sido discutida por aqui ultimamente, não? Pelo que li, no Clipper5.3 tem o comando "SET SCOPE" que quebra um galhão!!!

Abraços. :xau

Enviado: 09 Mar 2007 21:26
por sygecom
QUAL RDD VC USA ???

Enviado: 12 Mar 2007 10:29
por gvc
Opções que uso:

Crie um arquivo de índice para atender ao filtro.
ou
Crie um índice com o filtro.
ou
Use o SET SCOPE do 5.3 para trabalhar com o filtro.

ou então
Se o índice depende de várias opções e seu usuário entra com essas opções on-line, estude se vale a pena um índice temporário ou gerar um arquivo temporário.

Boa sorte.

Enviado: 16 Mar 2007 14:26
por Maurício Elias
Colega:

Tire o Set Filter.
Use um índice apropriado para a filtragem principal, o resto vc elimina no If - Skip - Loop

Abraços.

Maurício