Clipper On Line • Ver Tópico - Tabela DBF apaga os registros
Mudar para estilo Clássico
Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.
Postar uma resposta

Tabela DBF apaga os registros

03 Fev 2018 10:01

Bom dia
Me deparei com um problemão recente, ja ocorreu duas vezes na mesma loja e em uma outra uma vez.
Ocorre do nada, não descobri ainda em que instancia do sistema se é por causa do sistema, ou por causa de outro problema de hardware, mas alguma tabela não especifica, é aleatório, somem os registros dela a mesma fica zerada, vazia ao grosso modo, algo que tinha 15 mil registrou ou mais, do nada, ocorre o apagão e some todos os registros da tabela ficando aí tipo 3, 4 registro apenas, os iniciais, e abro a tabela, ela esta perfeita sem nenhum defeito prontinha para receber novos dados, os indices tbem todos perfeitos.
Agora como que ocorre isto, não sei, só sei que ocorre e tudo rodando normalmente, alguem sabe me informar?
Se a tabela tivesse vazia totalmente sem nenhum registro, eu pensaria primeiro que alguem apagou ela, mas ela tem registros iniciais de muitos anos atrás intactos e o resto tudo foi para as cucuias.
Sorte que todos os bancos de dados são replicados instantaneamente na matriz, mas se ocorrer de sumir quando não tiver replicado, aí perco as ultimas atualizações.
Se alguem já passou por isto, me informe o que pode ser.
Sei que preciso migrar para SQL urgente, mas a falta de tempo não me permitiu ainda.
Grato a todos.

Tabela DBF apaga os registros

04 Fev 2018 11:02

Será que você não tem alguma rotina em loop ai, que deleta registro ?

Tabela DBF apaga os registros

04 Fev 2018 16:21

Recomendo usar HbNetio, evita acessos indevidos, não sei me entende ?

Tabela DBF apaga os registros

06 Fev 2018 08:15

Bom dia
Obrigado pelos retornos.
Será que você não tem alguma rotina em loop ai, que deleta registro ?
Não, nenhuma rotina desta forma, esquisito mesmo o problema, pode até ser um problema no HD mas não detectei isto.

Recomendo usar HbNetio, evita acessos indevidos, não sei me entende ?
Sim, entendo. Já fiz teste primeiro com LETO, mas não fiquei contente e abandonei, lentidão absurda ao pesquisar no dbf por exemplo, pesquisar cliente, pesquisar nomes para localizar, onde a rotina faz um SEEK no banco de dados a cada variável.
Quanto ao NETIO, fiz teste e gostei mais, não executei ainda, porque eu tenho dois servidores de dados, um de DBFs iniciais do sistema e outro servidor com o banco de dados maior dos dados principais, e eu pelo menos não descobri como usar o netio desta forma.
Mas realmente pretendo usar, fiz até um programa em HWGUI só para gerenciar o netio no servidor, pretendo juntar o banco de dados exatamente para poder usá-lo, esta divisão do banco de dados, é só na MATRIZ, nas filiais todos estão juntos em um único servidor, não me pergunte porque fiz isto, hhhehe, na verdade foi uma ideia mediocre que tive, kkkk.
Creio que tomarei o projeito netio pelo menos nas filiais aonde ocorre este problema, vou ajustar o programa para ver se consigo implantar.

Uma pergunta: o HBNetio funcionaria como se fosse um SGDB, pelo que entendi, me corrijam:
O DBF abriria somente no servidor, funcionaria como CLIENTE / SERVIDOR?
Ganharia uma performance melhor em velocidade?
Segurança, quanto a falhas de índices ou até mesmo oque esta ocorrendo comigo, falha no DBF?

Grato a todos.

Tabela DBF apaga os registros

06 Fev 2018 08:24

HbNetio,

No exemplo a função de conexão é NetIO_Connect( ip,porta, timeout, "senha" )

Vai te dar mais segurança com relação a corrupção de dbf e indices e de quebra ficará oculto aos olhos do usuário, o acesso as tabelas é feito por uma função do hbnetio ip + porta e senha (opcional)

Um exemplo de acesso na aplicação cliente
Código:
METHOD TConectaNetIO()

   BEGIN SEQUENCE WITH __BreakBlock()
      IF ! ::lConecta
         IF ! oASAPREV:pConnection := NetIO_Connect( ::cIpAddServer, Val( ::cPortaNetIO ), 5000, "senha" )
            ::cServidorDB := [NetIO\SERVER5\DB\]
         ELSE
            ::cServidorDB := [net:] + ::cIpAddServer + [:] + ::cPortaNetIO + [:db/]
         ENDIF
         ::lConecta := .T.
      ENDIF
      oGuiProc:oThisFormMain:Caption := "ASAPREV - Versão 32 bits | " + ::cServidorDB
   RECOVER
     SaidaSistema()
   END
   
RETURN ::cServidorDB


Para abrir a tabela

DbUseArea( .T., cRDD, ::cServidorDB + cDataBase, cDataBase, .T. )

No servidor a aplicação ou agente servidor vai usar funções do hbnetio para disponibilizar o acesso.

Eu uso a mais de 5 anos e nunca tive problemas com dbf e indices corrompidos.

Tabela DBF apaga os registros

06 Fev 2018 14:58

Código:
FUNCTION PathAndFile( cFileName )

   IF AppDatabase() == DATABASE_HBNETIO
      cFileName := "net:" + AppEmpresaApelido() + "/" + cFileName
   ENDIF
   cFileName := Lower( cFileName )

   RETURN cFileName


Para hbnetio, basta acrescentar NET: no nome do arquivo.

Tabela DBF apaga os registros

07 Mar 2018 19:26

Ola!
mas não fiquei contente e abandonei, lentidão absurda ao pesquisar no dbf por exemplo, pesquisar cliente, pesquisar nomes

Tem alguma coisa errada ai. O Letodb é mais rápido que NetIo. Agora o LetoDbf é mais rápido ainda que este dois últimos.
O LetoDB tem BUGS que foram corrigidos com o Letodbf que inclusive RODA CLIPPER/SAMBA/Harbour tudo misturado. tem uma conversa enorme no grupo de usuários o Elch adaptando o LetoDBf para compartilhar o LOCK do DBF com o SAMBA.
O Samba é um "software servidor" para Linux (e outros sistemas baseados em Unix) que permite o gerenciamento e compartilhamento de recursos em redes formadas por computadores com o Windows. Assim, é possível usar o Linux como servidor de arquivos, servidor de impressão, entre outros, como se a rede utilizasse servidores Windows (NT, 2000, XP, Server 2003).


Saudações,
Itamar M. Lins Jr.

Tabela DBF apaga os registros

25 Set 2018 11:28

Bom dia a todos.
Só voltando ao assunto, do banco de dados sendo apagado os registros sozinhos do nada, voltou a ocorrer agora mesmo em uma filial em anexo como ficou a tabela de registro dos caixas.
Notem, que apenas o primeiro registro com ano 00, foi o que sobrou de mais ou menos 9.000 registros.
o ultimo foi que o usuário registrou novamente, notem que esta logo no recno 2, entao só sobrou no arquivo o recno 1 e o recno 2

Observações:
-Não há no sistema em nenhum fonte que faço um WHILE deletando todos os registros;
-Não há como deletar o caixa já fechado e registrado;
-Não tem usuários que saibam manipular o DBU;
-A pasta do banco de dados fica OCULTA;
-É instantâneo o problema, ocorre do nada e rapidão esta tudo zerado;
-Não há no sistema o comando ZAP, mesmo se tivesse, o primeiro registro não ficaria no banco de dados;
-É um arquivo compartilhado, vários computadores abrem juntos ao mesmo tempo;

Já verifiquei se houve alguma coisa anormal, e sim, o computador reiniciou sozinho, mas isto ocorre muitas vezes e não deveria afetar.

Sei que deveria já ter migrado para SQL, mas não consegui mudar ainda, visto que terei que mudar tudo.
Grato a todos
:)Pos

Tabela DBF apaga os registros

25 Set 2018 11:37

Será que tem alguém sabotando o seu sistema ? muito estranho isso, o dbf pode ser acessado pelo excel, dbu etc...

Desconfia também do usuário, eu faria um testes, a cada x registros faria uma cópia para um dbf imagem, tipo de TABELA.DBF -> TABELAT.DBF a cada 100 registros.

Somente uma ideia.

Tabela DBF apaga os registros

25 Set 2018 22:28

Ola!
-É um arquivo compartilhado, vários computadores abrem juntos ao mesmo tempo;

Ta mapeado ? Se sim, use o LetoDbf. A pasta com os DBF só é acessado via TCP, não existe compartilhamento para se preocupar.
Não vai mudar nada só precisa acrescentar alguns códigos no inicio.
Um chute: Alguém move um arquivo para cima desse ai

Saudações,
Itamar M. Lins Jr.

Tabela DBF apaga os registros

28 Set 2018 15:00

Boa tarde a todos.
Grato pelo retorno.
Já desconfiei de tudo, mas nada ocorre de anormal do cotidiano.
Já ocorreu com tabela grande e com tabela pequena.
Estes arquivos são compartilhado com várias maquinas na rede, e quando esta em uso pelo sistema, não tem como ser apagada acidentalmente.
Detalhe, sempre sobra o primeiro registro de anos atrás, este sistema e o banco de dados é usado desde 1994, claro, vem sendo alterado o banco de dados de acordo com novas opções do sistema, mas tudo é feito pelo sistema aos meus olhos, mas o ato de perder registro não ocorre na estruturação do banco de dados e sim no uso rotineiro.
É aleatório entre as lojas, não é direto, são esporádicos os dias.
Quanto a fazer copia do banco de dados, já faço instantaneamente replicando os dados para a MATRIZ.
Aí eu tenho que apenas pegar o banco de dados daqui e colocar novamente na filial , reordenar e funcionar.
Outro detalhe, este banco de dados quando desaparece o conteúdo os índices também são atualizados, tanto que ninguém nota diferença e tudo esta funcionando normalmente, só notam quando não localiza alguma coisa já registrada porque sumiu, não da erro no sistema, nadinha nadinha.
É muito estranho mesmo.
Eu desconheço como limpar um banco de dados, sumir com os registro, sendo que o banco esta em uso no momento do ocorrido.
Para efetuar um ZAP nele, o arquivo tem que estar exclusivo e demoraria uns par de minutos, isto logo alguém iria descobrir e me falar.
:)Pos

Tabela DBF apaga os registros

28 Set 2018 18:49

Ola!
O windows tem um recurso que sobrepõe qualquer arquivo com uma cópia anterior.
Verifique a opção "versões anteriores" no botão propriedades. Algo está ativando(voltando) algum ponto de restauração ou backup ai.

Saudações,
Itamar M. Lins Jr.

Tabela DBF apaga os registros

29 Set 2018 23:01

leandrolinauer escreveu:Para efetuar um ZAP nele, o arquivo tem que estar exclusivo e demoraria uns par de minutos, isto logo alguém iria descobrir e me falar.


deve estar se referindo a ficar exclusivo, porque o ZAP é instantâneo.
O que confunde é ficar sempre o primeiro registro, a não ser que ele seja gerado automaticamente pelo aplicativo.

Tem criação automática do arquivo?
o Windows poderia retornar que o arquivo não existe, e ele ser criado do zero.

Tem algum tipo de proteção/prazo de validade?
Às vezes a gente pode colocar isso e esquecer que colocou... rs

Sugestão:
Coloque algum tipo de aviso para quando o arquivo ficar com menos de 3 registros.
Pelo menos começa a ter o horário de quando isso acontece.

Tabela DBF apaga os registros

30 Set 2018 19:58

Até agora não mostrou a rotina que ocorre o erro e as funções que trabalham com o dbf, pode ter erro ai, mas só saberemos se mostrar o código

Estamos só na imaginação e suposições

Tabela DBF apaga os registros

01 Out 2018 08:08

asimoes escreveu:Até agora não mostrou a rotina que ocorre o erro


O problema é que justamente ele não sabe o que pode estar causando isso.
Postar uma resposta