Dúvidas no Paradox em Rede
Caros amigos
Meus sistemas trabalham com Paradox em rede Novell. Tudo perfeito.
Tive que instalar um deles em uma rede Windows. Aí tive um problema.
Determino o local onde vai ficar o pdoxusrs.net para todo mundo no mesmo local da rede, mapeio uma letra para todo mundo (´S:´) onde coloco os bancos de dados, em um dos computadores.
Mas para trabalhar com o mesmo banco de dados no próprio computador onde está o banco de dados, mesmo fazendo ´net dir´ extatamente o mesmo, é evidente que na designação ele tem outra letra, por exemplo ´D:\rede\net´. Aí ´dá pau´. O paradox me retorna um erro dizendo que o Pdoxusrs.net é diferente.
Tem alguma maneira de engana-lo ou não podemos trabalhar no micro que tem o banco de dados.
Dispenso respostas que me aconselham a trocar por outros bancos de dados, com cliente x servidor. Isto eu sei que dá certo.
Alguem sabe como contornar este problema no Paradox ???
Marconi
Meus sistemas trabalham com Paradox em rede Novell. Tudo perfeito.
Tive que instalar um deles em uma rede Windows. Aí tive um problema.
Determino o local onde vai ficar o pdoxusrs.net para todo mundo no mesmo local da rede, mapeio uma letra para todo mundo (´S:´) onde coloco os bancos de dados, em um dos computadores.
Mas para trabalhar com o mesmo banco de dados no próprio computador onde está o banco de dados, mesmo fazendo ´net dir´ extatamente o mesmo, é evidente que na designação ele tem outra letra, por exemplo ´D:\rede\net´. Aí ´dá pau´. O paradox me retorna um erro dizendo que o Pdoxusrs.net é diferente.
Tem alguma maneira de engana-lo ou não podemos trabalhar no micro que tem o banco de dados.
Dispenso respostas que me aconselham a trocar por outros bancos de dados, com cliente x servidor. Isto eu sei que dá certo.
Alguem sabe como contornar este problema no Paradox ???
Marconi
Marconi
Curtidas 0
Respostas
Vinicius2k
06/02/2004
Marconi,
A solução para este problema é criar uma unidade virtual através do comando SUBST do DOS... nosso amigo bacalhau postou aqui um artigo completo sobre, além de resolver este problema, evitar a corrupção e índices decorrentes dele... transcrevo abaixo o tópico.
Espero ter ajudado...
A solução para este problema é criar uma unidade virtual através do comando SUBST do DOS... nosso amigo bacalhau postou aqui um artigo completo sobre, além de resolver este problema, evitar a corrupção e índices decorrentes dele... transcrevo abaixo o tópico.
Espero ter ajudado...
Cá vai o artigo na versão original
Evitar indices corrompidos
Estimados colegas, antes de mais obrigado pelos vossos mails e pela vossa contribuição no fórum. Descobri-o há uma semana e sinto-me muito mais rico com as vossas sugestões e, sobretudo, pelos pontos de vista com que ´atacam´ os problemas.
Sobre a questão dos índices corrompidos há que dizer uma coisa: por causa deles foi parar a um psicólogo, já que tinha 40 empresas dependentes do meu trabalho (sou free lancer) e recebia 40 telefonemas por dia reportando 40 crashs nos dados de aplicações comerciais. A solução que encontrei é simples mas seria bom perceber algumas coisas antes.
1. O Borland Database Engine
----------------------------------
As tabelas Paradox são suportadas por um motor de bases de dados fornecido pela Borland, denominado Borland Database Engine (daqui para a frente BDE). É nesta aplicação que parametrizamos tudo sobre as drivers, bases de dados, lingua utilizada, parâmetros de datas, etc..
No caso das tabelas Paradox, somente alguns parametros é que são cruciais. Se as suas aplicações foram desenvolvidas em Delphi 2 ou anterior vai encontrar um BDE com um visual completamente diferente; no entanto os tais parâmetros cruciais mantêm-se lá.
Após abrir o BDE a que parâmetros deveremos prestar atenção? Cá vão:
Configuration -> Drivers -> Native -> Paradox - parâmetro NET DIR
Configuration -> System -> INIT -> parâmetro LOCAL SHARE
São estes dois parâmetros os responsáveis (ou não) pelo corrompimento de indexs. Para os enganarmos (sim, temos de os enganar) o melhor é avançar com um exemplo
2. Exemplo - tabelas Paradox num servidor acedidas por 5 clientes em simultâneo
----------------------------------------------------------------------------------------------
Vamos considerar um servidor chamado ´MEUSERVER´, com tabelas Paradox que estão em, por exemplo, C:\PARADOX\TABELAS (do ponto de vista do servidor, claro!!!).
Vamos agora considerar que a pasta ´C:\PARADOX´ foi partilhada, com acesso total por parte dos 5 utilizadores (usuários no Brasil )
Se olharmos do ponto de vista de um computador cliente, as tabelas estarão em ´\\MEUSERVER\PARADOX\TABELAS´. Até aqui nada de novo.
Do ponto de vista do BDE, a coisa já requer alguma destreza. O melhor é visualizar a pasta ´PARADOX´ em ´MEUSERVER´ e atribuir-lhe uma unidade lógica através do comando ´Ligar Unidade de Rede´: digamos que todos os clientes atribuíram ao caminho ´\\MEUSERVER\PARADOX´ a unidade ´F:´.
Agora as tabelas não estão em ´\\MEUSERVER\PARADOX\TABELAS´, mas sim em ´F:\TABELAS´. Chegou a hora de parametrizar o BDE.
3. Como parametrizar o BDE nos clientes
-----------------------------------------------
Na opção NET DIR coloque o valor ´F:\´.
Na opção LOCAL SHARE escolha o valor TRUE
Os clientes podem agora aceder às tabelas, e os índices corrompidos desapareceram. É óbvio que nem todos os clientes são obrigados a escolhar a drive lógica ´F:´, para ligar a unidade de rede.
Só que, uma vez escolhida a letra, esta deverá ser a mesma no BDE. Os seus clientes já estão configurados. Com isto definimos o local onde o BDE irá criar as grandes caches, onde todos poderão ler, escrever e partilhar, tudo isto controlado por essa grande ferramenta da Borland.
O parametro LOCAL SHARE é que é o responsável por este desempenho fabuloso! O servidor vai precisar de um pequeno truque.
4. Como parametrizar o BDE no servidor
----------------------------------------------
No meu trabalho diário, verifiquei que os problemas ocorriam quando essas tabelas eram acedidas através do computador servidor. Na realidade o problema está aí. Quando os clientes (e só os clientes) trabalhavam tudo corria bem. Mas bastava o acesso a um registo de uma tabela e estava tudo corrompido. Se eu tivesse a aceder a um registo em simultâneo com um cliente era corrupção na certa.
Mas porque não colocar os parâmetros LOCAL SHARE=TRUE e NET DIR=´C:\PARADOX\´? Repare, estimado colega, é isto que a lógica ´manda´. Infelizmente o BDE é um pouco caprichoso e temos de usar o velhinho DOS para aceder às tabelas de qualquer lado da nossa rede.
As soluções são:
No Windows 95 e 98, edite o ficheiro ´C:\AUTOEXEC.BAT´ e acrescente a linha: ´SUBST F: C:\PARADOX´. Este comando atribui (no servidor) uma unidade lógica à pasta que foi partilhada para todos os clientes. Mais uma vez, não está obrigado a usar a letra ´F:´; no entanto, a que escolher deverá ser a mesma a utilizar no NET DIR do BDE do servidor. O parametro LOCAL SHARE também é true.
Nos Windows ME, NT, 2000 e XP crie um batch file, contendo a linha anteriormente descrita e coloque no arranque da máquina ou a executar antes das suas aplicações.
O que fizemos foi dizer ao BDE para aceder a ´C:\PARADOX´, não através do caminho local mas através de uma unidade qualquer. Se for através de ´C:´ é impossível. Se for através de outra letra ele é enganado e gosta!!! eheheheheheh
5. Resumindo
---------------
- Em todos os BDEs da rede coloque o parametro LOCAL SHARE igual a TRUE.
- Coloque o paramatero NET DIR a apontar para o MESMO LOCAL do servidor (com as unidades de rede que lhe apetecer).
- O servidor é excepção: se ninguém aceder às tabelas Paradox a partir do servidor, não há problema. Caso contrário defina uma unidade de rede ´a-la-DOS´ e coloque essa letra no parametro ´NET DIR´:
Espero ter ajudado. Tenho isto implementado há 3 anos nos meus clientes e os problemas de indexs corrompidos desapareceram. E o Paradox é bem robusto...
Abraço do José ´bacalhau´ Viegas
GOSTEI 0
Marconi
06/02/2004
Muito obrigado Vinicius e por extensão ao ´Bacalhau´
Esta é realmente a solução.
Marconi
Esta é realmente a solução.
Marconi
GOSTEI 0
Bacalhau
06/02/2004
:oops:
GOSTEI 0