Indice corrompido?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Indice corrompido?

Mensagem por marcos.gurupi »

Caros, estah acontecendo algo estranho comigo. Estou usando dois sistemas que abre o mesmo arquivo, acontece que quando um sistema abre um determinado arquivo e cria o indice o outro sistema quando vai abrir diz que o indice estah corrompido, isso acontece virse e versa, ou seja, somente o arquivo q crio o indice abre sem erro. Segue abaixo como estou usando:

Sistema 1

Código: Selecionar todos

Select 1
Use (vPrinterDBF) NEW Alias "DBFPrinter" Shared
If !File(vPrinterCDX)
	Do While .t.
	   If travarqivo(5)
      	Index on Pedido   tag key001 to (vPrinterCDX)
      	Index on NoMesa   tag key002 to (vPrinterCDX)
      	Index on Atendent tag key003 to (vPrinterCDX)
      	Index on Status   tag key004 to (vPrinterCDX)
      	Index on Pedido   tag key005 to (vPrinterCDX) FOR STATUS="0"
      	//Index on Pedido   tag key001 to (vPrinterCDX) FOR STATUS="0"
      	DbUnlock()
   	Else
   	   Loop
	   Endif
	   Exit
   Enddo
Else
	dbsetindex((vPrinterCDX))
Endif
Sistema 2

Código: Selecionar todos

DO WHILE .T.
   SELECT 10
   dbf:=xEndDados+"Printer.dbf"
   ind:=xEndDados+"Printer.cdx"
   if ABRE((dbf))
      IF !FILE((ind))
         do while .t.
            if travarqivo(5)
            	Index on Pedido   tag key001 to (IND)
            	Index on NoMesa   tag key002 to (IND)
            	Index on Atendent tag key003 to (IND)
            	Index on Status   tag key004 to (IND)
            	Index on Pedido   tag key005 to (IND) FOR STATUS="0"
               DBUNLOCK()
            else
               MSGSTOP("Arquivo sendo alterado no momento.")
               loop
            endif
            exit
         enddo
      endif
   else
      MsgStop("Arquivo sendo alterado no momento.")
      loop
   ENDIF
   DBSETINDEX((IND))
   EXIT
ENDDO
:%
Marcos Roberto
NetService Software
Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

Indice corrompido?

Mensagem por Amparo »

ola amigos

Marcos, tente usar na abertura dos seus arquivos da seguinte forma:

DBUSERAREA(.T.,"DBFCDX",ARQUIVO_DBF,ALIAS,.T.,ARQUIVO_CDX)
.T. = NEW
DBFCDX = tipo de arquivo do indice se é CDX, NTX, IDX ...
ARQUIVO_DBF= deve conter por exemplo C:\SISTEMA\CLIENTES.DBF
ALIAS = nome da alias CLIENTES
.T. = SHARED
AQUIVO_CDX = nome do arquivo de indice CLIENTES

para criar os indice é da mesma forma que vc esta utilizando

e depois para selecionar um arquivo use:
DBSELECTAREA("CLIENTES")

para ativar uma TAG de indice use:
ORDSETFOCUS("cnpj")

abraços
amparo
Responder