Qual vantagem de usar TAG ao inves de INDICE ?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Fenix
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 14 Jul 2004 21:00

Qual vantagem de usar TAG ao inves de INDICE ?

Mensagem por Fenix »

Salve Galera,

Eu uso o SIX2 e vi que os indices NSX podem conter TAGs de forma que se poderia criar varios indices dentro de um mesmo arquivo. (Foi isso que eu entendi...)

Mas qual a vantagem disso ? Fica mais rapido ou dá menos erro de corrupção ?

Para fazer a conversao como posso fazer pois uso INDEX ON para gerar o indice, SET INDEX para abri-los e DBSETORDER() para seleciona-los. Tenho que trocar todos esses comandos ou só TO do INDEX ON para TAG ?

Estou pensando em fazer isso pq parece que sou o unico infeliz desse forum que tem problemas com o ERRO DO DOS 53 nas redes WIN98 pq todo mundo fala que nao acontece....

Até mais...
camiloto
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 07 Jul 2004 02:37

Mensagem por camiloto »

Fenix, usar a clausula Tag no final do index com o six tras algumas vantagens a saber:
1) A abertura do arquivo de indice fica mais rápida, uma vez q sera apenas um arquivo (.nsx)
2) Sera usado menos filesdo sistema operacional, uma vez q sera apenas um arquivo.
3) A corrupção do arquivo será mais difícil (isto é garantido pela six)
4) A organização dos arquivos será mais rápida.
5) O espaço em disco ocupado será menor.

Como organizar os arquivos com tag?
sele produtos
index on codigo tag cod_prod to indice
index on descricao tag nome_prod to indice
index on fornecedor tag forn_prod to indice
...

O que foi feito?
Foi criado um arquivo de indice chamado "indice" que contem 3 tag´s. A primeira tag está em ordem de codigo e chama-se cod_prod. A segunda tag está em ordem de descricao e chama-se nome_prd. E a terceira tag está em ordem de fornecedores e chama-se forn_prod.

Como mudar a ordem?
set index to 1 --> ficará no indice do codigo
set index to 3 --> ficará no indice do fornecedor
ou
set index tag cod_prod --> muda para o indice 1
set index tag forn_prod --> muda para o indice 3

Observação:
Um arquivo de indice (.nsx) pode ter, no máximo, 15 tags, o q é suficiente. Eu nunca usei mais do q 6.

Espero ter ajudado.

Um abraço.

Adriano Camiloto.[/code]
Fenix
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 14 Jul 2004 21:00

Mensagem por Fenix »

Obrigado por me ajudar.

O DBSETORDER() nao irá funcionar usando TAG ?
Eu usei ele em todo o sistema e se nao funcionar eu estou ferrado.
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

Mensagem por Dudu_XBase »

...crie os indices assim...
index on campo tag 1 ...
index on campo2 tag 2

no dbsetorder(1) ...por exemplo ele chamará essa tag...dbsetorder(2)...chamará a tag 2...assim vc naum terá q mudar todos os dbsetorders...


________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle




Fenix
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 14 Jul 2004 21:00

Mensagem por Fenix »

Valeu Pessoal (Y) !!!
Responder