Índice corrompido LETODB

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

jelias
Usuário Nível 3
Usuário Nível 3
Mensagens: 260
Registrado em: 27 Ago 2008 11:32
Localização: Minas Gerais

Índice corrompido LETODB

Mensagem por jelias »

Prezados amigos,

Estou usando LETODB 2.17b (deamon) com xHarbour 1.2.1. Um arquivo do sistema, somente um, em determinada rotina está corrompendo o índice, ou seja, o lançamento do registro no banco de dados é feito corretamente, todavia no relatório não aparece as informações.
O grande problema deste mistério é que acontece esporadicamente, talvez uma vez por mês, no máximo duas vezes por mês e todos os dias é feito lançamento no banco de dados e na maioria das vezes tudo ocorre perfeitamente, sem erros.
É muito estranho a fato ocorrido, visto que todos os dias são emitidas muitas notas fiscais com vários itens e o sistema é grande com muitos arquivos e só este arquivo corrompe o CDX.
A maioria dos lançamentos do caixa não é feito por esta rotina, e nunca deu problema. Esta rotina contempla um processamento de carga e faz automaticamente o lançamento do caixa, evitando retrabalho do usuário.
Quando faço a reindexação do arquivo, tudo volta ao normal.

Segue onde ocorre a gravação no banco de dados.
O arquivo corrompido é o alias AL_CXLAN

Código: Selecionar todos

   sele AL_DEBIT
   DBSETORDER(1)
   DBSEEK(AL_ACERT->codigo)
   do whil (!EOF() .and. codigo=AL_ACERT->codigo)
      vLan=STRZERO(VAL(vLan)+1,8)
      sele AL_CXLAN
      ADDREC(10)
      repl codigo with AL_CAIXA->codigo
      repl nomeca with AL_CAIXA->nomeca
      repl datala with vDat
      repl saldod with AL_CAIXA->saldod
      repl lancam with vLan
      repl tipodo with "01"
      repl classi with "01"
      repl valord with AL_DEBIT->valorc
      repl tipomo with "M"
      repl operac with "C"
      repl contan with AL_DEBIT->contan
      repl codhis with AL_DEBIT->codhis
      repl texto1 with AL_DEBIT->texto1
      repl texto2 with AL_DEBIT->texto2
      repl texto3 with AL_DEBIT->texto3
      DBCOMMIT()
      DBUNLOCK()
      sele AL_DEBIT
      skip
   end
Saudações,

Júlio.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

Índice corrompido LETODB

Mensagem por Fernando queiroz »

lembre-se que o LETO nao sabe qual arquivo voce esta manipulando, então coloque ALIAS em todas as funções

seek()
append()
skip()
rlock()

entre outras

nos nomes de campos
arquivo->campo
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Responder