Usando arquivos CDX

Oi Amigos da HMGLights.

Neste post quero falar sobre o uso das tabelas DBFs com os indíces CDX, você já faz uso assim? Sorte sua. Não faz? Talvez seja hora de você pensar em mudar um pouco o projeto do seu sistema, para que você possa ganhar velocidade, qualidade e principalmente estabilidade.

Após trabalhar quase que dezoito anos com DBFs e NTXs, um dia mesmo relutando em mudar, resolvi fazer testes com arquivos CDXs, conforme me foi explicado o uso pelo amigo e colaborador do site, Paulo Sérgio, e gostei do que vi, porém precisava testar.

E nestes dois anos comecei a usá-los em produção constante, troquei partes dos meus projetos anteriores que estavam com NTXs, e vejam qual foi minha surpresa.

Aumento na velocidade de reorganização dos índices, e uma necessidade infinitamente menor de fazê-lo.

Praticidade na hora de manipular os arquivos fisicos do sistema, pois em CDX não crio um repositório fisico para cada indíce, como em NTX, aqui é apenas um único arquivo.

Arquivo de índice muito menor para ser manipulado.

Aumento na velocidade de acesso aos indíces.

Menor chances de corrupção dos dados.

Baseado nestes dados reais é que aconselho quem vai continuar usando DBFs e não pretende migrar seus dados para o SQL, que use sem dúvida alguma os dados com o Driver DBFCDX, pois terá uma vida mais tranquila e poderá oferecer muito mais qualidade aos seus clientes.

Você não sabe usar os arquivos CDX? Não tem ideia de como fazer isso? Existe outros posts no site sobre isso, mas vou explicar de forma rápida aqui, para que você possa iniciar seu trabalho logo de início.

Nos exemplos abaixo tomaremos como base uma tabela de produtos com a seguinte estrutura:

aStruct := {}
AADD( aStruct, { "CODPRO","N",05,00 } )
AADD( aStruct, { "CODBAR","C",13,00 } ) 
AADD( aStruct, { "NOMPRO","C",50,00 } ) 
AADD( aStruct, { "UNIPRO","C",03,00 } ) 
AADD( aStruct, { "CODGRU","N",05,00 } )
AADD( aStruct, { "ENTPRO","N",15,00 } )
AADD( aStruct, { "SAIPRO","N",15,00 } )
AADD( aStruct, { "SALPRO","N",15,00 } )
AADD( aStruct, { "MINPRO","N",15,00 } )
AADD( aStruct, { "CUSPRO","N",15,05 } )
AADD( aStruct, { "VENPRO","N",15,05 } )
AADD( aStruct, { "ULTENT","D",08,00 } )
AADD( aStruct, { "ULTSAI","D",08,00 } )
DBCreate("sme003",aStruct)

Criando indíces CDX.

O primeiro passo a ser feito é no seu aplicativo principal, isso mesmo no MAIN.PRG, você definir a seguinte configuração:

REQUEST DBFCDX
RDDSETDEFAULT( "DBFCDX" )

Isso fará com que o seu sistema trabalhe com o Driver DBFCDX e assim ele estrá pronto para utilizá-lo sem problema algum.

A sintaxe do indexador é a seguinte:

INDEX ON <field> TAG <apelido> TO <file>

Levando em consideração que o arquivo de produto já esteja aberto em modo exclusivo, vamos executar o seguinte código fonte:

SELECT produto
PACK
FERASE("sme003.cdx")
INDEX ON STR(codpro,5) TAG codpro TO "sme003.cdx"
INDEX ON codbar TAG codbar TO "sme003.cdx"
INDEX ON nompro TAG nompro TO "sme003.cdx"
INDEX ON STR(codgru,5)+nompro TAG codgru TO "sme003.cdx"
INDEX ON STR(minpro,15,00) TAG minpro TO "sme003.cdx"
INDEX ON DTOS(ultent) TAG ultent TO "sme003.cdx"
INDEX ON DTOS(ultsai) TAG ultsai TO "sme003.cdx"

O processo será rápido, bem menor que com indíces do tipo NTX e muito mais prático de trabalhar, para colocarmos esse indíces em uso faremos o seguinte:

DBUSEAREA(.t.,,"sme003.dbf","produto",.f.)
SET INDEX TO "sme003.cdx"

Com apenas esta única indicação de abrir o arquivo CDX, já colocaremos em uso todos os índices na ordem que foram criados, ótimo isso não é mesmo?

Para selecionarmos os indices o processo não muda em nada, veja abaixo:

Colocando em ordem de NOME:

produto->( OrdSetFocus("nompro") )

Colocando em ordem de DATA DA ULTIMA ENTRADA:

 produto->( OrdSetFocus("ultent") )

Colocando em ordem de CODIGO:

 produto->( OrdSetFocus("codpro") )

Colocando em ordem de CODIGO DE BARRAS:

 produto->( OrdSetFocus("codbar") )

E assim por diante, você faz as seleções que precisar, e tudo funcionará perfeitamente, espero que você possa utilizar estas informações, que elas te ajudem muito, e que possam trazer ainda mais qualidades ao seu projeto.

Obrigado pela sua atenção e visita.

Até+

About these ads
Esse post foi publicado em Programação. Bookmark o link permanente.

Uma resposta para Usando arquivos CDX

  1. domingos silva disse:

    excelente !
    ainda hoje uso com o clipper 5.2

    e agora testei no harbour e clipp 5.2.

    excelente e pratico!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s