Dúvidas sobre criação de índices???

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem 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.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Re: Índices

Mensagem 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 ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Índices

Mensagem 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
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem 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 ???
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Índices

Mensagem por Netavin »

Bom dia colegas !

OK, ficarei atento a isso.

Muito obrigado! Até de repente.

[]´s

Netavin.
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Mensagem 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
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Mensagem 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
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Responder