Abertura de arquivos com cdx

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Josmar dos Santos
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 11 Jan 2006 18:36
Localização: Botucatu-SP

Abertura de arquivos com cdx

Mensagem por Josmar dos Santos »

Ola caros colegas, sei que esse assunto ja foi bastante discutido nesse forum, mas ainda tenho algumas duvidas de como trabalhar em aberturas de arquivos com o cdx.
Ai vai a situação... Tenho esse função no arquivos de funções:

Código: Selecionar todos

Function indicet
if .not. file("client.cdx") .or. pcount()<>0
     select 1
     use clientes
     mensagem("Organizando o arquivo client")
     index on cod_cli tag ind_cli1 to client
     index on dtos(dat_cli) tag ind_cli2 to client
     index on nom_cli tag ind_cli3 to client
endif
if .not. file("fornec.cdx") .or. pcount()<>0
     select 2
     use forneced
     mensagem("Organizando o arquivo fornec")
     index on cod_for tag ind_for1 to fornec
     index on dtos(dat_for)+dtos(dat_for)+nom_for tag ind_for2 to fornec
     index on str(val_for) tag ind_for3 to fornec
endif
use
Como os senhores podem notar, eu fiz essa função e declarei o mesmo no arquivo principal para fazer a abertura dos arquivos "indicet()". A pergunta e o seguinte: É necessário colocar abertura também nos arquivos ?, ou seja, Cadastro de clientes, alteração de clientes, relatórios, etc. e se tiver, o que eu coloco ? e também como travar para que dois usuários ou mais não tenham acesso ? Somente um ...sem mais obrigado
um abraços a todos...fico no aguardo !!!
:xau

-------------------------------
Nota de Moderação (Toledo): mensagem editada para colocar a tag [ code ]
Veja como utilizar esta tag: faq.php?mode=bbcode#f21
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Abertura de arquivos com cdx

Mensagem por Maligno »

Sugestão: faça uma função de abertura para cada banco de dados, não misturando clientes e fornecedores, como você mostra nesse código. Há momentos em que só é preciso cliente, por exemplo.

A abertura de arquivos de dados e seus índices só de ser feita no momento em que forem necessários. Se precisar que apenas um usuário tenha permissão de escrita, dê uma olhada no help sobre o comando USE, que contém uma cláusula chamada EXCLUSIVE. Esse é só um ponto de partida para você começar a estudar. Se você se aprofundar, verá que há uma cláusula SHARED, um comando SET EXCLUSIVE, etc.
[]'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!
SandroBelarmino
Usuário Nível 3
Usuário Nível 3
Mensagens: 464
Registrado em: 04 Set 2007 16:11
Localização: Pedreira-SP

Re: Abertura de arquivos com cdx

Mensagem por SandroBelarmino »

Bom dia,
Eu mudei um sistema pra CDX e coloquei em uso no cliente há uns 10 dias, e tanto eu quanto os usuarios ficamos muito felizes com os resultados.
Como comecei agora com o CDX não tenho tanto conhecimento no assunto, porém algumas dicas:
- para fazer a indexação abra sempre o dbf em modo exclusivo,
- antes de fazer a indexação, caso já exista o arquivo cdx, apague-o para criar um novo, caso contrário ele vai inflando e ficando muito grande.
- na abertura de arquivos, quando voce dá o comando use para abrir o dbf, se já existir o cdx com o mesmo nome do dbf, este já será aberto automaticamente, porém eu ainda continuo a usar o set index, o que tambem é permitido.

Para maiores esclarecimentos, na seção Banco de Dados voce encontrará vários tópicos sobre o assunto com muito mais detalhes e exemplos.

Abraços.
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 !!!!"
Josmar dos Santos
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 11 Jan 2006 18:36
Localização: Botucatu-SP

Re: Abertura de arquivos com cdx

Mensagem por Josmar dos Santos »

Maligno,
O grande problema, e que declaro essa funcao também numa outra função para excluir registros, para o mesmo reorganizar os arquivos. Mas te pergunto: Poderiamos deixar essa funçao somente para reorganizar os arquivos nessa funçao excluir, isto e, sem declarar ela na abertura do prg principal e criar novamente mais duas como vc mesmo disse ??

se alguem tiver algum exemplo platico de como fazer isso e lançar ela no topico, ficaria muito contente...sem mais
obrigado !
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Abertura de arquivos com cdx

Mensagem por Maligno »

Veja: o ideal é você particionar as tarefas ao máximo possível. Se a função é para abrir apenas o cadastro e índice de clientes, que seja só pra isso. Não interessa no que vai ser usado. Na medida em que você segmenta seu código desta forma, tudo fica mais fácil. A função ficou pronta? Funciona? Sim. Então nessa "caixa-preta" não se mexe nunca mais. E você se mantém ocupado com outras partes do código. Se nele houver algum erro, você já sabe que naquela função de abertura do cadastro de clientes não precisa investigar coisa alguma. Ela funciona. Ela já foi "certificada". Seu foco poderá estar todo no código problemático. Esse pensamento, claro, vale pra qualquer coisa, e não só pra abertura de arquivos. Isso economiza muito tempo de trabalho.
[]'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!
Responder