GARANTIR DESCONTO

Fórum Necessidade de reindexar tabelas Paradox a cada 10 min #207071

16/01/2004

0

Eu estou com um erro dando direto em meu banco de dados em paradox, tenho que reindexar a cada 10 min, estou trabalhando em rede, alguém tem alguma boa sugestão ???


Sremulador

Sremulador

Responder

Posts

16/01/2004

Balceiro

Não sei se vai ajudar muito, mas sai fora de paradox, mude pelo menos para o access que é mais confiável.


Responder

Gostei + 0

16/01/2004

Aroldo Zanela

Colega,

Não é para tanto. Solicite uma certificação da rede. A propósito, quantos usuários/estações, velocidade, hub/switch? O BDE está configurado corretamente?


Responder

Gostei + 0

16/01/2004

Vinicius2k

colega,

acho que boa parte de seus problemas de resolverão com uma configuração correta da BDE, mas não sou muito entendido no assunto...

o colega ´bacalhau´ é o fera na BDE... e pode lhe ensinar coisar q vc nem sabia que existiam... manda uma MP pra ele ou aguarde ele responder neste tópico...


Responder

Gostei + 0

17/01/2004

Sremulador

Amigos eu já tentei de tudo, são apenas 2 usuários eu já configurei e reconfiurei o meu bde, minha rede e IPX, será que ninguem teria uma boa solução, menos trocar de db.


Responder

Gostei + 0

17/01/2004

Bacalhau

Vinicius, tu deixas-me sem jeito, homem :oops:

Colega sremulador, de facto os erros de índices corrompidos (index out of date, corrupt index file/header, etc) são uma consequência da configuração do BDE. Há uns meses mandei um pequeno artigo para o clube, para o publicarem, mas até agora não tive resposta. Assim, vou postar o artigo aqui. Se ainda assim houver erros, manda um mail para virtual.viegas@netc.pt para eu ajudar. O artigo vai a seguir.

abraço
Viegas


Responder

Gostei + 0

17/01/2004

Bacalhau

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


Responder

Gostei + 0

17/01/2004

Vinicius2k

colega,
depois dessa aula de BDE não tem como não acabarem os problemas...

grande abraço ´bacalhau´ e obrigado por ter nos ajudado mais uma vez... :wink:


Responder

Gostei + 0

17/01/2004

Bacalhau

:oops:
Agora já há link para o pessoal com indices corrompidos. Abraço daqueles e obrigado pelos elogios


Responder

Gostei + 0

19/01/2004

Sremulador

[color=blue:bbec8593f4][/color:bbec8593f4] Valeu amigo, vou tentar executar suas dicas, a propósito você utiliza tables ou query para seus projetos ?


Responder

Gostei + 0

19/01/2004

Bacalhau

Uso ambas. embora com mais frequência as tabelas


Responder

Gostei + 0

19/01/2004

Sam

Amigão dê uma visitada no site WWW.BDESUPPORT.COM

Tem muita coisa interessante neste site para te ajudar.

Abçs !!!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar