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