Página 1 de 1

Arquivo DBF vazio, porém através do sistema há registros sim

Enviado: 17 Set 2014 18:46
por tiagobzm
Olha só minha arte:

O banco de dados DBF estava pesado. Então acessei via Access, deletei anos anteriores a 2014, depois fui no DBase e apliquei a opção PACK.

Ótimo, ele entendeu as linhas que deletei, o arquivo ficou menor e maravilha!

PORÉM, agora os novos lançamentos das vendas ocorrem de maneira estranha. Quando abro o arquivo, nenhuma linha foi registrada. Mas se acesso o arquivo via sistema lá constam os registros!

Como isso?

É um sistema em clipper emissor de pedidos e orçamentos.

No Dbase, na opçào Browse, também não mostra os novos registros! Engraçado é que o arquivo DBF está com data de modificação do windows correta. A cada lançamento a data de modificação é alterada...

Mistério!


Alguém ajuda??
Valeu!!
Tiago

Arquivo DBF vazio, porém através do sistema há registros sim

Enviado: 17 Set 2014 19:07
por Pablo César
Atualize os arquivos de índices, deve ser isso.

Arquivo DBF vazio, porém através do sistema há registros sim

Enviado: 22 Set 2014 18:56
por rochinha
Amiguinho,

Antes de mais nada, NUNCA, abra tabelas .DBF usando Access ou Excel, eles mudam informações importantes no cabeçalho e trabalham nos moldes do RDD para NTX.

Existem muuuuuitas ferramentas compatíveis para abrir .DBFs, use dBase, FoxBase, WinDBU, DBFViewer2000 e outros indicados por nossos colegas.

O melhor nestes casos é produzir um pequeno executável na linguagem xBase que voce esta usando para processar seus registros, exemplo:

Código: Selecionar todos

/*
 *
 * Script: Faz alguma coisa com os registros de uma tabela qualquer
 *
 */
function main
  //
  Request DBFCDX
  RddRegister('DBFCDX',1)
  RddSetDefault('DBFCDX')
  Request OrdKeyNo
  Request OrdKeyCount
  //
  if ! MsgYesNo('ATENCAO. Esta operacao ira modificar os registros. Continua?')
     return .t.
  endif
  //
  PassoUm()
  //
  PassoDois()
  //
  dbCloseAll()
  return .t.

function PassoUm()
  ...
  // Executa alguns comandos em sua tabela
  ...
  return .t.

function PassoDois()
  ...
  // Executa alguns comandos em sua tabela
  ...
  return .t.