Jump to content
Fivewin Brasil

Queda de Luz usando o DBF com indices CDX (tag)


gibaf

Recommended Posts

ola a todos...

em alguns clientes esta acontecendo muito QUEDA DE ENERGIA, apartir dae, alguns titulos ja pagos, voltam como se nao foram ainda pagos... alem disse, tambem, some uns registros de banco/caixa... aparentemente, somente essas duas tabelas sofreram com a QUEDA DE ENERGIA...

gostaria saber de vcs, se tem alguma forma pra evitar/preve a perca das informacoes guardados em dbf/cdx, via programacao (sei q pode ter alguns q vao sugerir no-break, etc....) ??

desde ja agradeco a ajuda: MUITO OBRIGADO !!!!

Link to comment
Share on other sites

Voce usa o DBCOMMIT() ou DBCOMMITALL() após a gravação dos campos nos processos?

ola a todos...

em alguns clientes esta acontecendo muito QUEDA DE ENERGIA, apartir dae, alguns titulos ja pagos, voltam como se nao foram ainda pagos... alem disse, tambem, some uns registros de banco/caixa... aparentemente, somente essas duas tabelas sofreram com a QUEDA DE ENERGIA...

gostaria saber de vcs, se tem alguma forma pra evitar/preve a perca das informacoes guardados em dbf/cdx, via programacao (sei q pode ter alguns q vao sugerir no-break, etc....) ??

desde ja agradeco a ajuda: MUITO OBRIGADO !!!!

Link to comment
Share on other sites

alguns titulos ja pagos, voltam como se nao foram ainda pagos...

alem disse, tambem, some uns registros de banco/caixa...

Investigue isso melhor, tá muito estranho... a data do banco de dados está correta? Não tem dedo humano ai, não?

a data esta ok , nao tem dedo de usuario ,etc... isso ocorre logo na sequencia da queda da energia.

Link to comment
Share on other sites

Enquanto voce não da o COMMIT fica somente em memoria a informação e em algum determinado momento o (x)Harbour descarrega para disco, ou seja, voce deixa pra ele determinar quando descarrega para disco. Isso acontece desde a época do clipper e o objetivo é otimizar o processo. Na prática tudo ocorre sem problemas quando nao tem situações atipicas, como queda de energia, mas se der uma queda de energia em um momento que o (x)Harbour ainda não descarregou para disco voce perde tudo que estava em memoria e não foi descarregado.

Quanto mais DBCOMMIT vc usar mais lento fica seu processo de gravação, porem voce garante que foi descarregado em disco o que estava em memoria. Então utilize isso de maneira que seja confiavel porem nao prejudique a performance do seu sistema.

Se voce quer garantir que seja gravado em disco a informação logo após gravar o campo tem que usar o DBCOMMIT para cada alias que teve algum processo de gravação ou dbcommitall() após finalizar as gravações, ex:

DbSelectArea("CLIENTES")

CLIENTES->ULTCOMPRA := M->dDatVen

CLIENTES->(DbCommit())

DbSelectArea("NOTAFISCAL")

Append Blank

NOTAFISCAL->NUMERO := M->nNumero

NOTAFISCAL->DATA := M->dDatVen

NOTAFISCAL->VALOR := M->nVrNf

NOTAFISCAL->(DbCommit())

ou então:

DbSelectArea("CLIENTES")

CLIENTES->ULTCOMPRA := M->dDatVen

DbSelectArea("NOTAFISCAL")

Append Blank

NOTAFISCAL->NUMERO := M->nNumero

NOTAFISCAL->DATA := M->dDatVen

NOTAFISCAL->VALOR := M->nVrNf

DbCommitAll()

99% nao, porque ?

Link to comment
Share on other sites

Amigos entendi o que ele quiz dizer, e já aconteceu e de vez em quando acontece, por isso estou mudando gradativamente para o SQL. Ele não quiz dizer "na hora" pois quando se fecha o arquivo acontece um "commit" automaticamente, no caso dele (acho eu), é a cprrupção dos arquivos de índices mesmo, que quando refeitos (REINDEX) podem sumir com os regstros ou não gravarem as alterações feitas.

Nesse caso, a sugestão do amigo funciona mesmo, mas para empresas que tem problemas de queda de energia e problemas na rede, isso acontecerá comumente.

xHB 8.12 / BCC 5.6 / DBFCDX/SQL

Link to comment
Share on other sites

É isso mesmo, o ideal é ter um nobreak em cada estação e no servidor, pra evitar que isso aconteça... Porem via programação, que é como foi pedido, isso é o máximo que se pode fazer...

Amigos entendi o que ele quiz dizer, e já aconteceu e de vez em quando acontece, por isso estou mudando gradativamente para o SQL. Ele não quiz dizer "na hora" pois quando se fecha o arquivo acontece um "commit" automaticamente, no caso dele (acho eu), é a cprrupção dos arquivos de índices mesmo, que quando refeitos (REINDEX) podem sumir com os regstros ou não gravarem as alterações feitas.

Nesse caso, a sugestão do amigo funciona mesmo, mas para empresas que tem problemas de queda de energia e problemas na rede, isso acontecerá comumente.

xHB 8.12 / BCC 5.6 / DBFCDX/SQL

Link to comment
Share on other sites

  • 1 month later...

Interessante todas as dicas, mas Gibaf, transfira a responsabilidade para o proprietário do estabelecimento, por norma principalmente o servidor deverá obrigatoriamente ter nobreak, melhor ainda se todas estações tiverem um NB, se há queda de energia ele (proprietário) vai procurar outro culpado que não seja ele.

Link to comment
Share on other sites

Oziel, pode até ser mas temos que fazer nossa parte no sistema. Ter COMMIT pra descarregar o que está em memória pra disco é obrigação do sistema e tem que ser feito. Mas colocar isso não isenta mesmo o cliente de ter nobreak assim como ter nobreak não isenta o sistema de ter os COMMITs

Interessante todas as dicas, mas Gibaf, transfira a responsabilidade para o proprietário do estabelecimento, por norma principalmente o servidor deverá obrigatoriamente ter nobreak, melhor ainda se todas estações tiverem um NB, se há queda de energia ele (proprietário) vai procurar outro culpado que não seja ele.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...