MEU BD ACCESS SE CORROMPE A CADA 4 DIAS !

MARCOS 22/11/2006 09:23:00
#185699
Bom dia,pessoal!
Tenho uma aplicação VB (5.0) e Access ( 97) na empresa.
o banco esta com 180 MB e é acessado simultaneamente por
vários usuários em rede.

O problema:

A cada intervalo de 3\4 dias o banco se "corrompe" e ao
abrir o Access para "reparar",o banco se repara,mas exibe
uma mensagem informando que "foram encontradas duplicidades
num indice".Pergunto aos colegas,o que posso fazer para
localizar e resolver o problema???


Obrigado pela atenção
USUARIO.EXCLUIDOS 22/11/2006 09:29:16
#185703
putz access 97 com 180mb só vai dar pau mesmo, sugiro que troque pelo
access 2000.
USUARIO.EXCLUIDOS 22/11/2006 09:44:36
#185707

Adicione uma rotina de reparação e compactação tb...isso por ajudar um poko!

Boa sorte!
USUARIO.EXCLUIDOS 22/11/2006 09:50:18
#185711
eu usei o access97 por +/- 3 anos, e o banco tinha uns 600mb +/- e chegou a corromper 2 ou 3 vezes... depois migrei para o access2000.

mas vc precisa verificar as condições em que o banco corrompe, senão, não adianta nada mudar para o 2000.
CLEVERTON 22/11/2006 10:14:21
#185718
Cara
se eu fosse vc criarva um Banco Novo 97, e tranasportava os dados
DAVYS 22/11/2006 10:55:35
#185730
Xii veio num vira continuar no 97 mesmo tb ja tive esse problema só q o meu Banco era um pouquinho menor tinha faixa de uns 45 MB, resolvi da seguinte maneira troquei a estrutura para ACCESS 2000 e não tive mais problemas, ahh kra outra coisa verifique tb esse sistema que vc usa para acessar essa base de dados, pode acontecer de existir muitas conexões de um unico terminal abertas sem necessidade, ai como vc disse q funciona em rede são varios terminais acessando a base de dados entendeu aumentando bastante bastante possibilidade de corromper.

Mas creio q só alterando a estrutura ja fica OK

flw kra
MARCOS 23/11/2006 08:21:39
#185845
Pessoal,o problema é que com os controles do VB
que foram usados,a aplicação somente
roda se a Base do Access for "97".Ou seja,mudar
a versao do Access agora esta fora de cogitação!

Queria saber então se existe algum jeito,de encontrar
os tais "indices duplicados",que a mensagem de erro do
access informa ,quando se corrompe?
USUARIO.EXCLUIDOS 23/11/2006 08:56:52
#185854
Tenta fazer o que o Cleverton disse.
Cria uma nova base de dados do 97 mesmo e transporta os dados.

Ai ve se vai continuar o problema.
DAVYS 23/11/2006 12:05:21
#185892
Poutz ai fica complicado, vc diz q o erro da mais ou menos de 4 em 4 dias né, faz um teste, tenta todo dia de manha quando ligar o servidor reparar e compactar o DB com as proprias ferramentas do ACCESS 97 e ve se resolve, se resolver o problema basta vc desenvolver uma ferramentinha para fazer isso automaticamento quando o servidor for ligado, mas isso é uma adaptação creio que não seja a solução ideal.

flw kraa
WEBMASTER 23/11/2006 12:14:58
#185895
Pela descrição do problema está claro que trata-se de inserções simultà¢neas na base de dados por usuários concorrentes. Talvez você tenha que tratar a aplicação para que ela não permita o erro na base.

Por exemplo:
- Pegue a data de inserção do último registro no banco de dados.
- Calcule quantos segundos se passaram entre a última inserção e o momento atual
- Aguarde "n" segundos para que um novo registro seja gravado

Como voce deve estar usando " insert into " a velocidade é seu principal aliado neste processo, mas dai caímos no problema de corromper sua base.
USUARIO.EXCLUIDOS 23/11/2006 14:39:12
#185933
o problema dele é que ele usa componente data, aquele controle intrínseco do vb (no caso dele vb5), e ele não pode mudar para access 2000 devido a versão do vb dele. também usar esses controles data é até mesmo desestimulado pela microsoft, a maneira mais sensata, visto que a sua base de dados vai continuar crescendo, é dá um upgrade na sua aplicação e por consequencia até no seu banco de dados, ah! e tem também que levar em conta as boas práticas em se acessar dados como disse o DAVYS ali em cima.
Tópico encerrado , respostas não são mais permitidas