Clipper On Line • Ver Tópico - Migrar de NTX para CDX. Como proceder ????

Migrar de NTX para CDX. Como proceder ????

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

Migrar de NTX para CDX. Como proceder ????

Mensagempor SandroBelarmino » 05 Mai 2008 10:10

Olá galera do Clipper On Line, tenho uma aplicação rodando com alguns DBF's um pouco grande, e estou tendo muito problema com os índices NTX, e sei que o CDX é mais seguro e tambem mais rápido. Estou usando Clipper 5.3 e Blinker 7.0 e gostaria de saber se a mudança para o CDX é muito complexa. Algumas dúvidas que tenho:
1-O que eu preciso mudar no codigo do programa e no arquivos lnk que linka o programa?
2-Eu uso para um mesmo dbf vários indices, que pode ser por codigo, nome, grupo etc, portanto para um arquivo de cliente por exemplo eu posso ter vários NTX e dentro do programa eu uso o SET ORDER TO para fazer as consultas, e sei que no CDX eu posso ter só 1 arquivo com várias chaves nele, porem eu poderia continuar usando o SET ORDER TO normalmente ou teria que mudar isso tambem? Ou será que eu posso continuar a criar 1 arquivo CDX para cada chave que uso? Qual seria a diferença entre essas 2 maneiras?
Sabendo que posso contar com a costumeira atenção de todos, já agradeço.
Muito Obrigado e um forte abraço a todos.
Sandro
Alessandro R Belarmino
Clipper 5.2e - Blinker 7 - DBFNTX / DBFCDX
"Quem trabalha muito erra muito, quem trabalha pouco erra pouco, quem não trabalha não erra e quem não erra é promovido !!!!"
SandroBelarmino
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 464
Data de registro: 04 Set 2007 16:11
Cidade/Estado: Pedreira-SP
Curtiu: 18 vezes
Mens.Curtidas: 0 vez

Re: Migrar de NTX para CDX. Como proceder ????

Mensagempor Toledo » 05 Mai 2008 10:34

Sandro, veja abaixo uma dica que está no meu site:

O RDD DBFCDX

Esse RDD permite a criação e manutenção de arquivos de dados e índices do FoxPro2.

Principais características:

Os índices .CDX do FoxPro são bem menores do que os .NTX criados pelo Clipper.

Cria índices condicionais através das cláusulas FOR, WHILE, REST e NEXT.

Cria arquivos de índices compostos que contém até 99 subíndices ou TAGS em um único arquivo reduzindo, assim, o número de arquivos abertos em nível do DOS.

Como o Clipper permite apenas 15 arquivos associados e abertos com a área atual, o uso dos arquivos CDX permite a abertura de mais arquivos de índices sem sobrecarregar o número de arquivos que o DOS manipula.

Para que o RDD DBFCDX funcione corretamente, devem ser seguidos os seguintes passos:

1 - Acrescente as linhas abaixo no início do seu programa principal:

REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")

2 - Para criar os arquivos de índices, você deve usar o seguinte comando:

SELECT 1
USE CLIENTES
INDEX ON codigo TAG indice1 TO cliente1
INDEX ON nome TAG indice2 TO cliente1

Observe que cada campo chave tem um TAG diferente (indice1 e indice2), mas todos estão sendo direcionados para um mesmo arquivo (cliente1), com isto será criado um arquivo de índice chamado CLIENTE1.CDX, com dois subíndices, um indexado pelo código do cliente e outro pelo nome do cliente.

3 - Para mudar a ordem em um arquivo de índice CDX, você deve proceder da seguinte forma:

ORDSETFOCUS("INDICE2")

Com este comando você vai selecionar o subíndice "INDICE2", que está indexado pelo campo nome do cliente.

ORDSETFOCUS("INDICE1")

Retorna ao subíndice principal, que está indexado pelo campo código do cliente.

Se o comando ORDSETFOCUS( ) não for especificado, a ordem será sempre a do primeiro subíndice criado, neste caso será o indice1, pelo código.

4 - Para linkar um programa com o RDD DBFCDX, deve ser acrescentada a LIB DBFCDX durante o processo de linkagem:

RTLINK FI teste LIB DBFCDX

5 - Os comandos abaixos continuam sendo usados da mesma forma:

SET INDEX TO - Abre um arquivo de índice.
CLOSE ALL - Fecha todos os arquivos de dados e índices associados.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Re: Migrar de NTX para CDX. Como proceder ????

Mensagempor SandroBelarmino » 05 Mai 2008 10:48

Bom dia Toledo,
Antes de mais nada, muito obrigado pela ajuda, só gostaria de esclarecer 1 dúvidas:
- Eu usando o índice composto em 1 único arquivo cdx para vários subindices eu teria que alterar em todos os meus códigos onde eu uso o set order to para ORDSETFOCUS() correto? como são vários programas com muitas linhas de código, tambem daria certo se eu criasse 1 arquivo CDX para cada chave de pesquisa?
Alessandro R Belarmino
Clipper 5.2e - Blinker 7 - DBFNTX / DBFCDX
"Quem trabalha muito erra muito, quem trabalha pouco erra pouco, quem não trabalha não erra e quem não erra é promovido !!!!"
SandroBelarmino
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 464
Data de registro: 04 Set 2007 16:11
Cidade/Estado: Pedreira-SP
Curtiu: 18 vezes
Mens.Curtidas: 0 vez

Re: Migrar de NTX para CDX. Como proceder ????

Mensagempor Toledo » 05 Mai 2008 11:52

Sandro, você pode continuar usando o SET ORDER TO sem problema algum.

O ORDSETFOCUS() e SET ORDER TO é a mesma coisa.

Exemplo:
SELECT 1
USE CLIENTES
IF !FILE("CLIENTE1.CDX")
  INDEX ON codigo TAG indice1 TO cliente1
  INDEX ON nome TAG indice2 TO cliente1
ENDIF
SET INDEX TO CLIENTE1

SET ORDER TO 2  //muda para o índice ordenado pelo nome


Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Re: Migrar de NTX para CDX. Como proceder ????

Mensagempor rochinha » 05 Mai 2008 21:40

Amiguinhos

Só um alerta,

Para que voce tenha exito nesta empreitada, caso tenha problemas, os quais não lembro para citar, sugiro, criar as estruturas ja usando o RDD CDX e importar os dados de seus arquivos.

Lembro que antes de optar por usar CDX usei por muito tempo a SUBNTX, pois CDX nos brinda com uma fantastica caracteristica de filtragem diretamente nos indices, enquanto que no NTX a filtragem só ocorre no DBF e portanto usava a SUBNTX.

Ao passar a usar CDX somente tive de desfazer dos parametros SET INDEX TO blablabla1, ..., blablabla15 acho até que nem é preciso usar SET INDEX ou USE ... INDEX, pois se o indice possuir o mesmo nome do DBF o CDX se encarrega de abri-lo, mas para não perder o costume e cair na preguiça da digitação use o trivial.

Em relaçao as estruturas dos arquivos criados com NTX e CDX, existe, uma pequenina inconveniencia que poderá fazer seu programa dar pau no comando USE, portanto, crie as estruturas em CDX e importe.

Boa sorte.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Re: Migrar de NTX para CDX. Como proceder ????

Mensagempor SandroBelarmino » 08 Mai 2008 11:37

Rochinha, antes de mais nada obrigado pela ajuda.

Sou totalmente leigo em relação ao CDX, então me desculpe se estiver fazendo alguma pergunta um tanto quanto 'besta' , mas como eu faço para criar as estruturas em CDX ?
Será que eu posso usar o GDBU para isso ou existe algum outro programa para fazer isso?

Obrigado e forte abraço.

Sandro
Alessandro R Belarmino
Clipper 5.2e - Blinker 7 - DBFNTX / DBFCDX
"Quem trabalha muito erra muito, quem trabalha pouco erra pouco, quem não trabalha não erra e quem não erra é promovido !!!!"
SandroBelarmino
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 464
Data de registro: 04 Set 2007 16:11
Cidade/Estado: Pedreira-SP
Curtiu: 18 vezes
Mens.Curtidas: 0 vez

Re: Migrar de NTX para CDX. Como proceder ????

Mensagempor Pablo César » 08 Mai 2008 13:44

Sobre como criar os arquivos CDX, se você intruiu no seu código para abrir o RDD:

REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
DBSETDRIVER("DBFCDX")

Você aqui está já definindo que TODA indexação irá ser mediante o CDX e ao INDEXAR o sistema irá criar sozinho em vez de NTX irá criar os CDXs.
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 de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Re: Migrar de NTX para CDX. Como proceder ????

Mensagempor Toledo » 08 Mai 2008 18:00

Sandro, segue abaixo um DBU que aceita tanto NTX como CDX, então quando você for criar os banco de dados para serem usados com o RDDCDX, escolha a opção FoxPRO na abertura do DBU.

DBU para CDX

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Re: Migrar de NTX para CDX. Como proceder ????

Mensagempor SandroBelarmino » 19 Set 2008 15:15

Boa tarde galera !!!

Descuple voltar nesse assunto novamente, já estou fazendo alguns testes com o CDX, já coloquei os comandos

REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
DBSETDRIVER("DBFCDX")

no programa, já fiz as rotinas de indexação usando o CDX e estou acertando os set order da vida, estou substituindo o campo memo que tenho em um cadastro por outro recurso, etc...

É que vou implantar o programa alterado no meu cliente e não quero correr o risco de ter alguma surpresa e deixar meu cliente parado, e estou com uma pulga atrás da orelha:
O amigo Rochinha disse:
rochinha escreveu:Só um alerta,
Para que voce tenha exito nesta empreitada, caso tenha problemas, os quais não lembro para citar, sugiro, criar as estruturas ja usando o RDD CDX e importar os dados de seus arquivos.


Minha pergunta é: basta eu simplesmente alterar o programa para o RDD CDX e criar os novos indices CDX com os meus DBF's que já tenho no sistema, ou eu preciso recriar todos os arquivos DBF com esse RDD e depois importar dos arquivos antigos ???

Novamente, desculpem minha ignorância e meu medo, mas é que nunca usei esse RDD e quando for implantar no cliente, ele precisa continuar rodando com o programa sem termos surpresas, pois não teremos tempo pra ficar procurando respostas e tentar ficar solucionando supostos problemas que possam ocorrer.

Valeu pela força.

Forte abraço.
Alessandro R Belarmino
Clipper 5.2e - Blinker 7 - DBFNTX / DBFCDX
"Quem trabalha muito erra muito, quem trabalha pouco erra pouco, quem não trabalha não erra e quem não erra é promovido !!!!"
SandroBelarmino
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 464
Data de registro: 04 Set 2007 16:11
Cidade/Estado: Pedreira-SP
Curtiu: 18 vezes
Mens.Curtidas: 0 vez

Re: Migrar de NTX para CDX. Como proceder ????

Mensagempor Toledo » 19 Set 2008 22:48

Alessandro, o interessante seria recriar todos os arquivos novamente, principalmente aqueles em que existe campos memos, com o pradão CDX os arquivos DBT mudam para FPT.

Dê uma olhada nesta mensagem:
viewtopic.php?p=19134#p19134

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Migrar de NTX para CDX. Como proceder ????

Mensagempor Pablo César » 19 Set 2008 23:56

Toledo escreveu:Alessandro, o interessante seria recriar todos os arquivos novamente, principalmente aqueles em que existe campos memos, com o pradão CDX os arquivos DBT mudam para FPT.
Ops, pelo que eu entendí o Alessandro vai substituir todos os campos do tipo MEMO para outro recurso. Imagino que ele venha adotar aquele que eu tenho indicado em outros tópicos. Pois eu sempre fui em contra desse tipo de campo (dá muito fragmentação e muita dor de cabeça porque demanda muita manutenção nos DBFs), já não é assim com a criação de arquivos textos compondo os nomes de arquivos com uma sigla+código_cliente (por exemplo).

Alessandro, se você está recioso em migrar para CDXs, aconselho você primeiramente finalizar essa mudança dos campos memos e usando NTXs como vinha usando. Logo que estiver funcionando bem a questão de leitura/gravação dos campos em arquivo texto, você faz uma cópia para outra pasta e adota a utilização do CDXs. Daí vai para o seu cliente com as duas cópias (duas versões) do seu sistema e deixe rodar com CDXs, até você perceber que está tudo beleza. Se ficou alguma coisa a resolver, daí é só substituir seu sistema com a versão NTX. Belé ?
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 de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Re: Migrar de NTX para CDX. Como proceder ????

Mensagempor SandroBelarmino » 22 Set 2008 13:26

Valeu pela força galera !!!

Já estou testando as mudanças aqui.

Pablo, em relação aos campos memos, eu usava no cadastro de clientes, porém eu fiz o seguinte, criei um dbf com 2 campos, o codigo do cliente e um campo texto C 78,0. Então, cada linha que havia no campo memo eu gero um registro nesse arquivo. Só deu um certo trampo pra fazer a rotina de digitação desse campo, pois tive que deixá-lo aberto com se fosse um texto, igual ao memoedit() mas no final das contas deu tudo certo, e com a vantagem do usuário nao precisar tecla CTRL+C para gravar o texto digitado, o que já vinha sido motivo de várias reclamações pois o cidadão digitava um livro no campo e dava esc para sair da tela de digitação, e nisso, bye bye texto.

Enfim, obrigado pela força em mais essa empreitada, e agora é aguardar pra quando eu colocar em produção pra valer essas mudaças.

Forte abraço e sucesso a todos !!! :-)
Alessandro R Belarmino
Clipper 5.2e - Blinker 7 - DBFNTX / DBFCDX
"Quem trabalha muito erra muito, quem trabalha pouco erra pouco, quem não trabalha não erra e quem não erra é promovido !!!!"
SandroBelarmino
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 464
Data de registro: 04 Set 2007 16:11
Cidade/Estado: Pedreira-SP
Curtiu: 18 vezes
Mens.Curtidas: 0 vez

Re: Migrar de NTX para CDX. Como proceder ????

Mensagempor sygecom » 22 Set 2008 15:46

Sandro,
Sobre uma das suas duvidas.
Você não prescisa recriar os DBF pode usar os mesmo que usa com NTX.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Migrar de NTX para CDX. Como proceder ????

Mensagempor Pablo César » 22 Set 2008 16:05

Você não prescisa recriar os DBF pode usar os mesmo que usa com NTX.
Acho que você não entendeu Leonardo (não leu por completo a indicação toda). Ele comentou que precisou criar um DBF para poder substituir o campo do tipo MEMO que possuia. Mas por outro lado, eu também tenho a dizer que não havia necessidade de criar outro dbf para esse fim. Bastava fazer uma vinculação de registro com o nome do arquivo texto a ser gerado. Por exempo: se eu tenho um cadastro de clientes, que possui código do cliente e o usuário/operador quiser fazer uma observação como é feito no campo MEMO, sito é, atarvés do MEMOEDIT. Bastava só chamar uma função que abrisse o nome de cada arquivo com a numenclatura de cada código de cliente.

Agora se seus usuários tinha dificuldade na finalização da edição do texto, porque esqueciam de gravar ou porque tinham que pressinar Ctrl W, bastava fazer um SETKEY ESC para a função GRAVAR ou até então poderia também fazer que logo que fechasse o MEMOEDIT verificasse se a variável de retorno do MEMOEDIT estivera diferente do arquivo, daí poderia também pergunta se deseja gravar. Para mim este procedimento é uma mão na roda. E desculpem mas todo este assunto NÃO tem a ver como CDX e sim com campos MEMOS, falei disto porque o colega mencionou um dos seu problemas. E o qual eu acho que seria bom tratar antes de fazer a migração de NTX para CDX.
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 de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Re: Migrar de NTX para CDX. Como proceder ????

Mensagempor sygecom » 22 Set 2008 21:59

Veja a duvida do Colega abaixo.
SandroBelarmino escreveu:Minha pergunta é: basta eu simplesmente alterar o programa para o RDD CDX e criar os novos indices CDX com os meus DBF's que já tenho no sistema, ou eu preciso recriar todos os arquivos DBF com esse RDD e depois importar dos arquivos antigos ???

Sobre os campo MEMO já tinha sido respondido. No caso seria somente recriar os que cotem campo MEMO e recriar os indice e correr pra galera.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Próximo



Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 10 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