Clipper On Line • Ver Tópico - Tabela DBF apaga os registros

Tabela DBF apaga os registros

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

Tabela DBF apaga os registros

Mensagempor leandrolinauer » 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.
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Tabela DBF apaga os registros

Mensagempor sygecom » 04 Fev 2018 11:02

Será que você não tem alguma rotina em loop ai, que deleta registro ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7006
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Tabela DBF apaga os registros

Mensagempor asimoes » 04 Fev 2018 16:21

Recomendo usar HbNetio, evita acessos indevidos, não sei me entende ?
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Tabela DBF apaga os registros

Mensagempor leandrolinauer » 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.
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Tabela DBF apaga os registros

Mensagempor asimoes » 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
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.
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Tabela DBF apaga os registros

Mensagempor JoséQuintas » 06 Fev 2018 14:58

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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tabela DBF apaga os registros

Mensagempor Itamar M. Lins Jr. » 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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Tabela DBF apaga os registros

Mensagempor leandrolinauer » 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
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Tabela DBF apaga os registros

Mensagempor asimoes » 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.
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Tabela DBF apaga os registros

Mensagempor Itamar M. Lins Jr. » 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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Tabela DBF apaga os registros

Mensagempor leandrolinauer » 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
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Tabela DBF apaga os registros

Mensagempor Itamar M. Lins Jr. » 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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Tabela DBF apaga os registros

Mensagempor JoséQuintas » 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tabela DBF apaga os registros

Mensagempor asimoes » 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
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Tabela DBF apaga os registros

Mensagempor JoséQuintas » 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Próximo



Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 12 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro