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