Página 1 de 1

Problema com criação de índice CDX

Enviado: 25 Nov 2008 09:11
por SandroBelarmino
Salve galera !!!
Mudei todo um sistema em um cliente para indíce CDX, porém estou tendo um problema, na reorganização eu apago o arquivo cdx para criá-lo novamente, porém o arquivo SENHA.CDX não está sendo criado, a única diferença desse arquivo para os demais é que esse tem todos os campos cripitografados.
A reorganização é feita automaticamente no servidor de madrugada, pelo agendador de tarefas do windows.
Abaixo o código que estou usando na criação dos índices.

Código: Selecionar todos

sele 0
if net_use_r('senha',.t.)   pack
   INDEX ON USUARIO TAG USUARIO TO SENHA
   use
endif

** Abertura de arquivos para reorganizacao
function net_use_r
parameters yarq,yt,yalias
wpos  :=rat('\',yarq)
if wpos>0
   walias:=right(yarq,len(yarq)-wpos)
else
   walias:=yarq
endif
yalias=if(type('yalias')!='C',walias,yalias)
use &yarq alias &yalias exclusive new
wret:=.f.
if ! neterr()
   close all
   cd_arq:=upper(yarq)+'.CDX'
   if file('&cd_arq')
      delete file &cd_arq.
   endif
   use &yarq alias &yalias exclusive new
   wret:=.t.
endif
release yarq,yt,yalias
return wret
O que será que pode estar acontecendo???

Valeu pessoal,
Abraços

Re: Problema com criação de índice CDX

Enviado: 25 Nov 2008 10:38
por sygecom
Sandro,
Você esta usando o SET AUTOPEN OFF | ON ? se tiver com ON, tente deixar OFF no momento da criação dos indice.

Re: Problema com criação de índice CDX

Enviado: 25 Nov 2008 10:52
por gvc

Código: Selecionar todos

// if ! neterr()
while neterr() .or. !wret // aqui
   inkey(5) // aqui
   use
   cd_arq := upper(yarq) + '.CDX'
   if file('&cd_arq')
      delete file &cd_arq.
   end
   use &yarq alias &yalias exclusive new
   wret := .t.
end // aqui
return wret

Re: Problema com criação de índice CDX

Enviado: 25 Nov 2008 11:20
por SandroBelarmino
Valeu galera, estou fazendo os testes aqui... ; )

Abraços.

Re: Problema com criação de índice CDX

Enviado: 25 Nov 2008 14:23
por gvc
Desculpe. O código anterior é furado.

Código: Selecionar todos

wret := .F.
while !wret
   inkey(5)
   use
   cd_arq := upper(yarq) + '.CDX'
   if file(cd_arq)
      ferase(cd_arq)
   end
   use &yarq alias &yalias exclusive new
   if !neterr()
      wret := .T.
   end
end
return wret