Página 1 de 1

Indexação - DBFNXT 1012 DBF Corruption

Enviado: 08 Set 2010 20:30
por schott0102
Bom dia amiguinhos,

Estou com um problema aqui e espero que tenham paciencia e saibam me ajudar. =P

Eu tenho em mãos um sistema antigo, e sem qualquer suporte por parte do cliente. Eles não sabiam absolutamente nada quando me mandaram os arquivos para atualizar. Não querem atualizar para xharbour ou nada do tipo (deve ser mantido em 5.2e).

Eu consegui criar um RMK e LNK para recompilar o sistema e funcionou perfeitamente. Ele possui uma função interna para reindexar os arquivos e essa função também funciona perfeitamente.

Eis meu problema:

A atualização do sistema se fez necessaria devido a uma atualização de um DBF. O programa agora deve passar mais parametros e condições para achar uma unica entrada do DBF.

Esse novo banco me foi passado em formato XLS (Excel). Para transforma-lo em DBF, eu apenas troquei o formato. Recebi o erro explicitado no titulo do tópico. Tentei alguns conversores XLS to DBF, e nenhum funcionou devidamente. Existe algum método especifico para transformar esse xls para dbf sem que seja necessaria a reindexação, ou que pelo menos se mantenha a compatibilidade?

Porque quando eu troco esse banco e ativo a procedure de reindexação, todos os NXT são criados, com exceção do relativo ao DBF novo.

Caso o problema não seja a transformação do XLS em DBF, como eu faço para que o programa faça a indexização correta?


Perdoem-me se as perguntas forem estupidas. Eu descobri Clipper a 1 semana e não estou realmente familiarizado com a linguagem.


Obrigado.

Re: Indexação - DBFNXT 1012 DBF Corruption

Enviado: 08 Set 2010 22:18
por sygecom
Abra o arquivo pelo excel, e tente ir no SALVAR COMO e selecione o tipo DBF (dBASE II) ou DBF(dBASE III) e depois tente novamente indexar pelo Clipper

Re: Indexação - DBFNXT 1012 DBF Corruption

Enviado: 09 Set 2010 01:01
por schott0102
Eu tenho que baixar algum add-in para fazer isso? O meu excel não apresenta a opção de salvar como dbf. Tem DIF, mas nenhum DBF.


Edit: Bom, aparentemente houve uma descontinuidade ao formato DBF por parte da microsoft e não existe mais a possibilidade de salvar as planilhas xls como dbf a partir do Office 2007. Vou tentar baixar e instalar o Office 2003.

Indexação - DBFNXT 1012 DBF Corruption

Enviado: 09 Set 2010 09:05
por Pablo César
Se a sua necessidade é diária e que a atualização terá que ser feito pelo próprio usuário, você tem duas possibilidades: uma ver a possibilidade de gerar essa planilha com algum arquivo tipo csv ou outro formato que o Clipper possa ler ou então busca um aplicativo para converter xls em dbf (e ainda em Excel 97), mas esta opção é um aplicativo que é pago. Uma das opções que encontrei no Google, é este: http://www.dbfview.com/convert-xls-to-dbf.html que custa 49 dolares (tem outro custando 29,95), mas tem uma versão trial que funcionará por 30 dias. Mas esta opção tem duas regras e que creio que qualquer outro aplicativo também se aplica:

Quando você exportar. Xls arquivos que você deve levar em consideração algumas limitações:

1. Regras dos nomes de colunas.
- Os nomes das colunas devem ser escritos um após o outro (começando com a célula A1).
- Nomes vazios das colunas não são suportados (colunas à esquerda, que só são importados).
- Os nomes das colunas com mais de 8 caracteres são cortados ficando até o tamanho de 8.

2. Regras da definição do tipo de colunas.
O tipo de colunas é definido de acordo com o tipo de dados inseridos na segunda linha, ou seja, se o valor inteiro é escrito na segunda linha dessa coluna será do tipo inteiro.

Se o seu problema de corruption foi após de ter importado os dados, foi porque você deve ter esquecido de ter aberto o dbf com os seus respectivos índices. Daí não pricisaria reindexar. Mas tem que ser aberto todos os indices daquele dbf.

Engraçado, pelo que eu lembro o Excel 97 tinha também gravar como dbf DBASE III e IV também. Veja que a instalação esteja completa, senão o jeito é fazer o upgrade do Excel.

Re: Indexação - DBFNXT 1012 DBF Corruption

Enviado: 09 Set 2010 09:47
por gvc
Como vc quer usar clipper 5.2e puro, vamos por partes:
- Exporte sua planilha para o formato csv. (arquivo texto com os campos separados por virgula ou poento e virgula)
- Crie um arquivo temporário com um campo apenas com tamanho suficiente para receber a maior linha do seu arquivo texto.
- Rode uma crítica sobre cada linha desse novo arquivo. (verifique os campos e os dados de todas as linhas)
- Se tudo atender as suas regras, desmonte as linhas usando tokens para ter os dados de cada campo e gravá-los no(s) devido(s) arquivo(s).

Re: Indexação - DBFNXT 1012 DBF Corruption

Enviado: 09 Set 2010 10:25
por schott0102
Pablo,

Não existe a necessidade de atualização diaria. Na realidade, essa DBF vai ser utilizada apenas para consulta e para puxar dados, nada será inserido nela.

O que eu consegui fazer foi abrir o XLS no access e usar a função export para transformar em DBF, mas por algum motivo o arquivo ficou varias vezes maior do que o original, com varias linhas vazias após a tabela e apesar de agora ser possivel indexar, não consigo localizar dos dados dentro do DBF através do aplicativo.


Gvc, eu vou dar uma pesquisada e tentar fazer do jeito que disse. Espero que consiga. Obrigado.

Re: Indexação - DBFNXT 1012 DBF Corruption

Enviado: 09 Set 2010 16:11
por rochinha
Amiguinho,

Compacte o arquivo .XLS e o .DBF em questão, poste no 4Shared ou seu dominio e coloque o link aqui para baixar-mos e analisar-mos.