Página 2 de 2
Enviado: 03 Dez 2007 19:43
por Pablo César
Netavin, se seu campo é numérico, eu indexaria com STRZERO(), dessa forma você garantiza uma indexação com maior precisão, pois os ZEROS em lugar de espaços é mais exato. Mas veja que eu só estou sugerindo fazer a indexação com STRZERO e a exibição (seja em tela ou relatório) você pode fazer como quiser.
Re: Índices
Enviado: 03 Dez 2007 20:01
por Pablo César
Outra coisa, Netavim não sei se eu entendí errado mas você diz:
Netavin escreveu:imprimo o código e o nome do produto com respectivo subtotal. Porém o nº de identificação não sai em órdem.
Por outro lado você tem um RELATION, no entanto no seu código você seleciona alguns registros que tem a ver com a data inicial e final. Será que não estaria alí o seu mistake ?
Índices
Enviado: 12 Dez 2007 12:15
por Netavin
Bom dia a todos !
ave Pablo !
Valeu pelas dicas. Resolvi da seguinte forma:
Index on strzero(placa,5) + Dtos(dtbx) + esse to i_indice
... foi na veia.
agradecido!
Obrigado a todos !
Netavin
Enviado: 12 Dez 2007 13:16
por Maligno
Se o volume de dados for grande e você notar alguma lentidão na indexação, experimente trocar StrZero() por Str(). E ajuste a pesquisa.
Enviado: 12 Dez 2007 13:34
por Pablo César
Maligno escreveu:Se o volume de dados for grande e você notar alguma lentidão na indexação, experimente trocar StrZero() por Str()
Não acredito ! Você tem experiência sobre isso ?. Isto é, acha que faria diferença alguma ? Pois trata-se de ZEROS em lugar de espaços, o volume da indexação, não seria IGUAL

Enviado: 12 Dez 2007 16:22
por Maligno
Não. Eu quis dizer que a função StrZero() consome mais tempo de CPU que a função Str. E, no final das contas, com StrZero() você apenas tem zeros no lugar de espaços. Para o efeito de ordenação, dá no mesmo.
Índices
Enviado: 13 Dez 2007 09:17
por Netavin
Bom dia colegas !
OK, ficarei atento a isso.
Muito obrigado! Até de repente.
[]´s
Netavin.
Enviado: 12 Abr 2008 10:33
por Netavin
Bom dia !
Um fragmento do que o Rochinha disse em "RELATÓRIO PERFEITO E SIMPLES":
USE CONTAS NEW
INDEX ON dtos(DATA) TO CONTA001
SET INDEX TO CONTA001
GOTO TOP
.
.
.
Pode-se usar a forma acima, sempre que eu for abrir um arquivo, invés de:
Use arq
If !file("ind.ntx")
index on ind to ind2
Else
set index to ind
Endif

????
Netavin
Enviado: 12 Abr 2008 10:55
por Maligno
A primeira forma vai indexar cada vez que o DBF for aberto. É um desperdício. A segunda forma é preferível, apesar de que há uma diferença de chaves. Mas acredito que seja só um exemplo simples, não é?
Só alteraria uma coisa. Se bem me lembro (meu sistema de indexação é automático - nunca nem vejo isso), ao criar o índice, ele não se mantém aberto. Então, seria melhor (já com uma correção para os nomes dos símbolos):
Código: Selecionar todos
use arq
if !File("ind.ntx")
index on chave to ind
end
set index to ind
Aliás, nem sei se é o seu caso, mas uma dica: use paths completos e evite depender do SET DEFAULT para o sistema encontrar seus arquivos. Isso evita alguns problemas. Eu mesmo
nunca usei SET DEFAULT pra coisa alguma.
Enviado: 12 Abr 2008 13:27
por Netavin
tá certo malígno; foi apenas para exemplificar mesmo.
Valeu!
bom final de semana a você e a todos os amigos do Fórum.
Netavin