Clipper On Line • Ver Tópico - Abertura de arquivos com cdx
Página 1 de 1

Abertura de arquivos com cdx

MensagemEnviado: 30 Nov 2008 12:45
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:

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

Re: Abertura de arquivos com cdx

MensagemEnviado: 30 Nov 2008 15:53
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.

Re: Abertura de arquivos com cdx

MensagemEnviado: 01 Dez 2008 09:45
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.

Re: Abertura de arquivos com cdx

MensagemEnviado: 01 Dez 2008 11:49
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 !

Re: Abertura de arquivos com cdx

MensagemEnviado: 01 Dez 2008 12:10
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.