Tabelas Paradox Corrompidas
Olá amigos,
Tenho um sistema de parcelamento funcionando em rede que até a pouco tempo funcionava normalmente.
Uso duas tabelas - Cadastro e Parcelamento - sendo um relacionamento um-para-muitos.
O problema é que com o aumento do banco de dados de parcelamento, começou a dar erro constante de Key Violation (Na realidade bastam dois usuários criarem um parcelamento para o erro ocorrer). O campo chave é do tipo Auto-Incremento.
O outro problema mais recente é que esta mesma tabela de parcelamento está sendo corrompida sempre que um usuário cria parcelas para um cliente. (Só para citar um exemplo, o usuário pede para criar 30 parcelas e após rodar a rotina de parcelamento, é indicado que gerou 60 parcelas. Claro que isto está errado, mas para corrigir estou tendo que usar a biblioteca TUTIL32.DLL constantemente).
Apesar de conseguir corrigir sempre que o erro ocorre, isto está se tornando um grande inconveniente.
Peço que se alguém já passou por esse problema; me ajude, pois já esgotei todas as possibilidades que conheço sobre o assunto.
Grato pela atenção.
Barcelos
Tenho um sistema de parcelamento funcionando em rede que até a pouco tempo funcionava normalmente.
Uso duas tabelas - Cadastro e Parcelamento - sendo um relacionamento um-para-muitos.
O problema é que com o aumento do banco de dados de parcelamento, começou a dar erro constante de Key Violation (Na realidade bastam dois usuários criarem um parcelamento para o erro ocorrer). O campo chave é do tipo Auto-Incremento.
O outro problema mais recente é que esta mesma tabela de parcelamento está sendo corrompida sempre que um usuário cria parcelas para um cliente. (Só para citar um exemplo, o usuário pede para criar 30 parcelas e após rodar a rotina de parcelamento, é indicado que gerou 60 parcelas. Claro que isto está errado, mas para corrigir estou tendo que usar a biblioteca TUTIL32.DLL constantemente).
Apesar de conseguir corrigir sempre que o erro ocorre, isto está se tornando um grande inconveniente.
Peço que se alguém já passou por esse problema; me ajude, pois já esgotei todas as possibilidades que conheço sobre o assunto.
Grato pela atenção.
Barcelos
Barcelos
Curtidas 0
Respostas
Koplin
06/08/2003
TAbelas Paradox são frágeis, principalmente quando tem muitos registros.
Recentemente tive um problema deses e era a rede recebendo interferencia. Uma vistoria na rede resolveu. Mas sempre tenho problemas. O seu caso é ainda mas grave por ter relacionamento dentro das tabelas. Eu uso fazer no código. Corrupção de indices são uma constante.
Diante destes problemas, eu migrei minhas aplicações para outro banco de dados. Hoje uso mySQL com os componentes zeusLib 6.11 gamma. Para portar não é dificil, requerendo apenas conhecimentos maiores de SQL.Ele vem com um excelente manual que ensina tudo. E tem em portugues no site www.mysqlbrasil.com.br
Mas, veja sua rede. Faca um checkup completo, re-grimpando cabos e trocando o hub por um switch, veja as placas de rede, se sua rede for de no max. 10M pense em renovar para ela ficar 10/100. Veja se não tem cabos pasando perto de luminarias ou junto a fiação elétrica. Pense em interferencia eletrica ou mal-contato. Fazendo isso tudo, tem um bom tempo que meu cliente não me chama.(este ainda ta no paradox).
Outro bom motivo para migrar é que o BDE foi descontinuado.
Recentemente tive um problema deses e era a rede recebendo interferencia. Uma vistoria na rede resolveu. Mas sempre tenho problemas. O seu caso é ainda mas grave por ter relacionamento dentro das tabelas. Eu uso fazer no código. Corrupção de indices são uma constante.
Diante destes problemas, eu migrei minhas aplicações para outro banco de dados. Hoje uso mySQL com os componentes zeusLib 6.11 gamma. Para portar não é dificil, requerendo apenas conhecimentos maiores de SQL.Ele vem com um excelente manual que ensina tudo. E tem em portugues no site www.mysqlbrasil.com.br
Mas, veja sua rede. Faca um checkup completo, re-grimpando cabos e trocando o hub por um switch, veja as placas de rede, se sua rede for de no max. 10M pense em renovar para ela ficar 10/100. Veja se não tem cabos pasando perto de luminarias ou junto a fiação elétrica. Pense em interferencia eletrica ou mal-contato. Fazendo isso tudo, tem um bom tempo que meu cliente não me chama.(este ainda ta no paradox).
Outro bom motivo para migrar é que o BDE foi descontinuado.
GOSTEI 0
Renaldo
06/08/2003
Dê uma olhada no ídice da tabela, key violation significa que ele esta violando uma das chaves, certifique-se que o sistema não está gerando duplicidade quando tenta gravar na tabela.
GOSTEI 0
Bacalhau
06/08/2003
Indices corrompidos quase me levaram à loucura. No entanto tabelas Paradox não são frágeis. O problema reside na configuração do BDE (Borland Database Engine).
Barcelos, creio ter a solução para esses indices, mas preciso saber em que rede está e os parametros da driver Paradox em cada máquina. Se quiseres esclarecer melhor estou em virtual.viegas@netc.pt
Abraço do bacalhau
Barcelos, creio ter a solução para esses indices, mas preciso saber em que rede está e os parametros da driver Paradox em cada máquina. Se quiseres esclarecer melhor estou em virtual.viegas@netc.pt
Abraço do bacalhau
GOSTEI 0
Alessandrobenevides
06/08/2003
SE VC QUE USA PARADOX E JÁ ESTÁ PASSANDO PELO O QUE PASSEI,ENTÃO SAIA DELA IMEDIATAMENTE.PASSEI PARA O INTERBASE E ACABOU-SE ISSO.EXISTE UM SOFTWARE DE NOME ´TUTIL32´ QUE USEI MUITO PARA RECUPERAR TABELAS CORROMPIDAS.SE QUISER ESSE ARQUIVO,ME ENVIA UM EMAIL QUE TE RETORNO COM CERTEZA.
ABRAÇOS E BOA SORTE, HÁÁÁ E LEMBRE-SE SAIA DO PARADOX OU ´PIRADOX´. alessandrobenevides@hotmail.com
ABRAÇOS E BOA SORTE, HÁÁÁ E LEMBRE-SE SAIA DO PARADOX OU ´PIRADOX´. alessandrobenevides@hotmail.com
GOSTEI 0
Barcelos
06/08/2003
Fala galera...
Primeiro queria agradecer a todos pelas dicas. Estou testando algumas pra ver o que acontece...
Bom, pelo que parece vou ter mesmo que mudar o tipo de banco de dados.
A questão é: Qual a forma menos traumática de fazer isto?????
Existe possibilidade de portar o código????
Alguém sabe de alguma apostila, artigo, etc... que trate da migração de BD´s???
Valeu galera!!!!
Barcelos
Primeiro queria agradecer a todos pelas dicas. Estou testando algumas pra ver o que acontece...
Bom, pelo que parece vou ter mesmo que mudar o tipo de banco de dados.
A questão é: Qual a forma menos traumática de fazer isto?????
Existe possibilidade de portar o código????
Alguém sabe de alguma apostila, artigo, etc... que trate da migração de BD´s???
Valeu galera!!!!
Barcelos
GOSTEI 0
Koplin
06/08/2003
Primeiro, Voce precisa escolher um Banco de dados.
Troca de Banco de dados, sempre dá trabalho, principalmente se sua filosofia for baseada em SQL. Mas vale a pena. Eu comecei com interbase e depois mudei para mySQL. Dentro do tipo de projetos que eu uso Estou satisfeito. Agora o IB ou FB - a versão free - está muito bem documentada na net e tem muitos aplicativos para auxiliar na migração.
Troca de Banco de dados, sempre dá trabalho, principalmente se sua filosofia for baseada em SQL. Mas vale a pena. Eu comecei com interbase e depois mudei para mySQL. Dentro do tipo de projetos que eu uso Estou satisfeito. Agora o IB ou FB - a versão free - está muito bem documentada na net e tem muitos aplicativos para auxiliar na migração.
GOSTEI 0
Bacalhau
06/08/2003
Colega Barcelos, a questão é: não mudes!!!!
Não concordo com a opinião de alguns colegas, quando dizem que o Paradox é frágil. Dou apoio a clientes com tabelas de 150000 registos (sim, cento e cinquenta mil...) e trabalham alegremente.
Conforme disse numa resposta antiga, o problema não é do Paradox, é de configuração do BDE. A resposta a esse problema é um pouco longa, por isso disponibilizei o meu mail para me dares mais informação.
A mudança pode ser traumática, principalmente na conversão do código. Se precisares manda um mail para virtual.viegas@netc.pt com as parametrizações da drive Paradox no BDE. Terei todo o gosto em ajudar.
Abraço do bacalhau
Não concordo com a opinião de alguns colegas, quando dizem que o Paradox é frágil. Dou apoio a clientes com tabelas de 150000 registos (sim, cento e cinquenta mil...) e trabalham alegremente.
Conforme disse numa resposta antiga, o problema não é do Paradox, é de configuração do BDE. A resposta a esse problema é um pouco longa, por isso disponibilizei o meu mail para me dares mais informação.
A mudança pode ser traumática, principalmente na conversão do código. Se precisares manda um mail para virtual.viegas@netc.pt com as parametrizações da drive Paradox no BDE. Terei todo o gosto em ajudar.
Abraço do bacalhau
GOSTEI 0
Barcelos
06/08/2003
:lol:Fala Bacalhau...
O e-mail já deve ter chegado.
Tô aguardando a resposta.
Se alguém tiver outras sugestões sobre isto, por favor postem aqui també m.
Valeu mesmo.
Barcelos
osbarcelos@hotmail.com
O e-mail já deve ter chegado.
Tô aguardando a resposta.
Se alguém tiver outras sugestões sobre isto, por favor postem aqui també m.
Valeu mesmo.
Barcelos
osbarcelos@hotmail.com
GOSTEI 0
Cicero
06/08/2003
Caro Barcelos,
o paradox.da pau mesmo,, não tem jeito.
mais uma dica para trabalhar com paradox.não use indice Autoincremento
use um contador para o campo codigo, no seu prejeto ok:
na www.theclub.com.br
exist projeto com um cantador de Registro pronto p/ Paradox
seu nao ingano é controle.zip
cicerojosecruz@bol.com.br
MT Varzea Grande
o paradox.da pau mesmo,, não tem jeito.
mais uma dica para trabalhar com paradox.não use indice Autoincremento
use um contador para o campo codigo, no seu prejeto ok:
na www.theclub.com.br
exist projeto com um cantador de Registro pronto p/ Paradox
seu nao ingano é controle.zip
cicerojosecruz@bol.com.br
MT Varzea Grande
GOSTEI 0
Franklin
06/08/2003
Olá Barcelos, tá aí uma uma opnião direta do assunto..
qnd ocorrer este tipo de exceção use como clausula except um comando para alterar o seu campo de autoinc para numerico, feche a tabela e altere-a novamente para autoinc. assim vc faz com que os registros sejam recontados no autoinc, consequentemente corrigindo o erro.
sempre funcionou comigo, t+...
qnd ocorrer este tipo de exceção use como clausula except um comando para alterar o seu campo de autoinc para numerico, feche a tabela e altere-a novamente para autoinc. assim vc faz com que os registros sejam recontados no autoinc, consequentemente corrigindo o erro.
sempre funcionou comigo, t+...
GOSTEI 0
Bacalhau
06/08/2003
Desculpem, mas as sugestões apresentadas arrepiam-me um pouco. brrrrrrr... A correcta configuração de BDE ultrapassa tudo isto.
Tenho Paradox a correr há anos em redes enormes e não é preciso nada disto. Há solução, colegas, há solução...
Tenho Paradox a correr há anos em redes enormes e não é preciso nada disto. Há solução, colegas, há solução...
GOSTEI 0
Barcelos
06/08/2003
Olá amigos,
Devo dizer que com as configurações que nosso amigo Bacalhau me passou do BDE, as tabelas já não perdem mais os índices.
(A questão principal, conforme o arquivo que me foi enviado por ele[arquivo MUITO útil, por sinal], era quando os arquivos eram manipulados no servidor. Bastou dar um subst e funcionou uma maravilha).
Mas continua corrompendo as tabelas. Assim, perde o relacionamento.
Continuo tendo sempre que apelar para TUTIL32.DLL.
Alguma sugestão ???
Barcelos
osbarcelos@hotmail.com
Devo dizer que com as configurações que nosso amigo Bacalhau me passou do BDE, as tabelas já não perdem mais os índices.
(A questão principal, conforme o arquivo que me foi enviado por ele[arquivo MUITO útil, por sinal], era quando os arquivos eram manipulados no servidor. Bastou dar um subst e funcionou uma maravilha).
Mas continua corrompendo as tabelas. Assim, perde o relacionamento.
Continuo tendo sempre que apelar para TUTIL32.DLL.
Alguma sugestão ???
Barcelos
osbarcelos@hotmail.com
GOSTEI 0
Bacalhau
06/08/2003
Que mensagem é que dá para saberes que são tabelas corrompidas? ´Corrupt index?´, ´Corrupt table?´ Dava jeito saber que mensagem é emitida, e já agora que tabelas estão abertas e utilizadores a aceder.
Abraço do bacalhau.
Abraço do bacalhau.
GOSTEI 0
Barcelos
06/08/2003
Caros Amigos,
No programa propriamente dito, não dá nenhuma mensagem de erro.
A mensagem aparece quando rodo a rotina de reparação da biblioteca TUTIL32.DLL (uso o programa Database Explorer, incluído nos exemplos da RX LIB), aí é exibida a seguinte mensagem:
´Number of records 174 in block 197 does not match index 175. A Tabela Parcelamento.db está danificada. Reconstruí-la?´
Tens idéia do que seja ?
Abraço
Barcelos.
No programa propriamente dito, não dá nenhuma mensagem de erro.
A mensagem aparece quando rodo a rotina de reparação da biblioteca TUTIL32.DLL (uso o programa Database Explorer, incluído nos exemplos da RX LIB), aí é exibida a seguinte mensagem:
´Number of records 174 in block 197 does not match index 175. A Tabela Parcelamento.db está danificada. Reconstruí-la?´
Tens idéia do que seja ?
Abraço
Barcelos.
GOSTEI 0
Bacalhau
06/08/2003
Caro Barcelos, experimenta não utilizar a biblioteca TUTIL32.DLL . Faz assim: antes de continuares a rodar o programa, passa tudo o que é tabela pelo software de reparação. Depois apaga tudo o que é index secundário e cria-os novamente (dá trabalho, mas muitas vezes resulta).
É que o que reportas pode não ser um erro do programa, mas sim o reflexo de erros anteriormente ocorridos. Eu tenho num cliente um shareware muito antigo que repara com muito sucesso situações dessa tipo. Se não conseguires com mais nada diz-me que eu vou tentar enviar o referido software.
Abraço
Bacalhau
É que o que reportas pode não ser um erro do programa, mas sim o reflexo de erros anteriormente ocorridos. Eu tenho num cliente um shareware muito antigo que repara com muito sucesso situações dessa tipo. Se não conseguires com mais nada diz-me que eu vou tentar enviar o referido software.
Abraço
Bacalhau
GOSTEI 0
Helderjr
06/08/2003
Bacalhau, seria possivel voçê passar para mim jhcamurcajr@ig.com.br um email com a configuração ideal do BDE para rede?
GOSTEI 0
Barcelos
06/08/2003
Amigo Bacalhau,
Fiz o seguinte:
Apaguei todos os índices, dei um pack nas tabelas, reconstrui os índices manualmente. Só depois usei o software de reparação.
A princípio pareceu funcionar, mas quando aumentou o volume de dados, o problema reapareceu. Os índices não deram problema, mas continuo tendo problemas com a corrupção das tabelas.
Procurei na Net e não achei nenhum software que faça reparação de tabelas paradox sem usar a TUTIL32.DLL.
Se puderes enviar o arquivo mencionado, ficarei grato. (Se o executável for muito grande, favor enviar para fbarcelo@netpiumhi.com.br).
Outro detalhe sobre o qual eu queria discutir contigo é sobre a publicação daquele artigo que você me enviou sobre o BDE em rede.
Por que não o publica aqui no Fórum??? Tenho certeza de que como me ajudou, ajudará também muita gente que ainda usa nosso velho paradox.
Abraço
Barcelos
osbarcelos@hotmail.com
Fiz o seguinte:
Apaguei todos os índices, dei um pack nas tabelas, reconstrui os índices manualmente. Só depois usei o software de reparação.
A princípio pareceu funcionar, mas quando aumentou o volume de dados, o problema reapareceu. Os índices não deram problema, mas continuo tendo problemas com a corrupção das tabelas.
Procurei na Net e não achei nenhum software que faça reparação de tabelas paradox sem usar a TUTIL32.DLL.
Se puderes enviar o arquivo mencionado, ficarei grato. (Se o executável for muito grande, favor enviar para fbarcelo@netpiumhi.com.br).
Outro detalhe sobre o qual eu queria discutir contigo é sobre a publicação daquele artigo que você me enviou sobre o BDE em rede.
Por que não o publica aqui no Fórum??? Tenho certeza de que como me ajudou, ajudará também muita gente que ainda usa nosso velho paradox.
Abraço
Barcelos
osbarcelos@hotmail.com
GOSTEI 0
Bacalhau
06/08/2003
Caro Barcelos, não estou a ver onde possa ser o problema. Se quiseres manda as tabelas problemáticas (vazias... eheheheheh) e o código-fonte que gera a corrupção para eu dar uma olhada.
Claro que enviarei o utilitário de reparação. Simplesmente tenho que o procurar, não peças para hoje, ok?
Quanto à publicação do artigo: bom, ele foi escrito meio à pressa e sem objectivos de publicação. A ideia era dar solução aos índices, pelo que se for publicado terá de ser mais trabalhado. E também tem o problema de ser escrito em português europeu, não sei se é bem compreendido no Brasil. Mas não deixa de ser uma hipótese.
Claro que enviarei o utilitário de reparação. Simplesmente tenho que o procurar, não peças para hoje, ok?
Quanto à publicação do artigo: bom, ele foi escrito meio à pressa e sem objectivos de publicação. A ideia era dar solução aos índices, pelo que se for publicado terá de ser mais trabalhado. E também tem o problema de ser escrito em português europeu, não sei se é bem compreendido no Brasil. Mas não deixa de ser uma hipótese.
GOSTEI 0
Aroldo Zanela
06/08/2003
Colegas,
Ferramentas de reparo e TUtil32 estão disponíveis gratuitamente em: www.bdesupport.com
Ferramentas de reparo e TUtil32 estão disponíveis gratuitamente em: www.bdesupport.com
GOSTEI 0