Página 1 de 1

Melhor do que o Set Filter...

Enviado: 13 Set 2017 17:11
por WCARDOSO
Boa tarde, gostaria de uma ajuda em relação de pesquisa, busca, como o arquivo é grande, sei que o Set Filter é lento, gostaria de saber qual o mais rápido em relação a isso.

Melhor do que o Set Filter...

Enviado: 13 Set 2017 19:53
por filizola
index on NOME to ind1 WHILE NOME="JOAO" FOR SEXO="M"
index on NOME to ind2 FOR SEXO="F"

Melhor do que o Set Filter...

Enviado: 14 Set 2017 09:37
por acelconsultoria
Indexar o banco de dados já acrescentando uma condição para usar como pesquisa é a melhor forma de "turbinar" as pesquisas.

Além dos exemplos do Filizola, você poderá optar por usar o OrdScope() ou SET SCOPE TO, caso esteja utilizando o Clipper 5.3. Ou ainda, uma combinação de escopo com filtragem.

Vamos supor que eu queira emitir um extrato de um produto do estoque, pra saber quais foram as entradas e saídas durante um período. Vou utilizar o SET SCOPE para delimitar o período a ser pesquisado, e depois o SET FILTER para filtrar apenas o produto desejado.

Campos do MOVIMENTO.DBF:
Data => data da venda ou da compra
CodPro => codigo do produto
Produto => descrição do produto
Quant => quantidade movimentada
Tipo => "E" para entrada ou "S" para saída
SaldoEst => saldo do estoque

Código: Selecionar todos

FUNCTION EXTRATO()
   LOCAL Ini_Data, Fim_Data, nCodigo
   Ini_Data := CTOD("  /  /  ")
   Fim_Data := CTOD("  /  /  ")
   nCodigo := 0
   @ 10, 05 SAY "Data Inicial .....:" GET Ini_Data
   @ 11, 05 SAY "Data Final ......:" GET Fim_Data
   @ 12, 05 SAY "Código Produto :" GET nCodigo
   READ

   USE MOVIMENTO
   INDEX ON DATA TO IDXDATA
   SET INDEX TO IDXDATA  // indexado por ordem de data

   SET SCOPE TO Ini_Data, Fim_Data // o escopo delimita a data inicial e a data final desejada
   SET FILTER TO CodPro = nCodigo // filtragem para o produto desejado
   DBGOTOP()

   DO WHILE !LASTKEY() = 27
      DBEDIT()
   ENDDO

   SET FILTER TO // limpa a filtragem
   SET SCOPE TO   // limpa o escopo

   DBCLOSEALL()

RETURN .T.
   


Melhor do que o Set Filter...

Enviado: 19 Set 2017 20:50
por dbdc5554
HUm...

se JA esta criando indices melhor colocar um clausula FOR

Paiva