Clipper On Line • Ver Tópico - Arquivos de Índice

Arquivos de Índice

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

Arquivos de Índice

Mensagempor ClickOk » 25 Fev 2017 17:34

Oi amigos

Eu aqui de novo com dúvidas de índices.

Olha, no Advantage Data Architect, Dá pra criar índices e arquivos de índices na mão. O sistema atual tem um arquivo de índice (que é o mesmo nome do dbf)

Como estava criando um índice novo para o sistema, eu criei um arquivo de índice separado, e nesse arquivo de índice adicionei o índice. Então, na hora de usar (apenas 1 pesquisa no sistema), simplesmente usei dbsetindex(novoArquivoDeIndice). Que sonho! funcionou!

Mas depois lembrei que precisa que o índice esteja aberto quando forem feitas atualizações, etc... senão o índice fica desatualizado...
:(

Como prefiro evitar mexer no restante do sistema, então penso na possibilidade de ao inves de criar o arquivo de indice separado do padrao, apenas adicionar o indice ao arquivo existente. Minhas perguntas:

    (1) Quando atualiza os registros do dbf, todos os índices no cdx são atualizados ou apenas o ativo? Se sim, quer dizer que meu índice novo vai ser atualizado também?
    (2) Isso de colocar todos os indices no mesmo arquivo é uma boa prática?
    (3) Como seleciono o indice certo dentre esses no cdx? dbsetindex() é pra escolher o arquivo de indice, não é? não o índice dentro do arquivo. estou confuso sobre dbSetOrder() ou OrdSetFocus(). Não me parecem muito intuitivos esses nomes, a menos que eles chamem cada indice no arquivo de indices de "ordem"

Agradeço atencipadamente!
Fábio Alves
"O homem lança os dados, mas do SENHOR procede o resultado" Provérbios 16:33 (paráfrase)
ClickOk
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 13
Data de registro: 12 Jan 2017 20:29
Cidade/Estado: Brasilia/DF
Curtiu: 4 vezes
Mens.Curtidas: 0 vez

Arquivos de Índice

Mensagempor JoséQuintas » 26 Fev 2017 18:05

Ao criar o índice CDX, você indica a TAG, que será o nome interno associado ao índice.
Pode selecionar o índice ativo por OrdSetFocus()., acho que isso é o ideal.

USE CLIENTES
INDEX ON CODIGO TAG CODIGO
INDEX ON NOME TAG NOME
INDEX ON ENDERECO TAG ENDERECO
OrdSetFocus( "codigo" )
SEEK 5
OrdSetFocus( "NOME" )
SEEK "nome"
OrdeSetFocus( "ENDERECO" )
SEEK "endereco"


Se criar mais índices, neste caso tanto faz, vai ser usado o nome da TAG.
Vai poder adicionar índices sem precisar mexer nos fontes, até mesmo alterar a ordem.

Se usar por número... nunca vai poder mexer na ordem deles, não vai saber qual é realmente o índice selecionado, justamente por número não é intuitivo.

Todos os índices sempre são abertos, atualizados, e contam como um único arquivo aberto.

Detalhe:
Criar uma tag não apaga nem mesmo a tag com mesmo nome existente. Apenas a anterior vai virar lixo.
No caso de recriar índices, o ideal é apagar primeiro.

Isso de usar vários índices em um único arquivo é quase tão velho quanto Clipper, dBase e Foxbase.

Inclusive no ADS acaba perdendo recursos ao usar NTX.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Arquivos de Índice

Mensagempor ClickOk » 27 Fev 2017 14:57

Obrigado. Tirou dúvidas e resolveu problemas. :)
Fábio Alves
"O homem lança os dados, mas do SENHOR procede o resultado" Provérbios 16:33 (paráfrase)
ClickOk
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 13
Data de registro: 12 Jan 2017 20:29
Cidade/Estado: Brasilia/DF
Curtiu: 4 vezes
Mens.Curtidas: 0 vez




Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro