Página 1 de 1

Deletando arq's. RDD CDX

Enviado: 18 Mar 2005 18:08
por Ale SB
E ai galera, blz,

eh o seguinte eu estou mudando meus indeces .NTX p/ .CDX com o CL52e, nesta transiçao percebi q toda hora q abre o Sistema ele remonta o indice por cima do outro, concluindo;

Tenho q deletar o arq. de indice toda vez q eu sair do sistema ?
Como eu deletaria dentro do meu sistema os arq. de indices ?
Ex. daria pra eu fazer como no DOS (del *.cdx), dar esse comando dentro do sistema ?

Aguadeço antecipadamento pela ajuda;

@braços Ale SB -:]

Enviado: 18 Mar 2005 22:06
por Daniel
Ale
Vc ta mando o seu programa criar os index toda a vez que vc entra no sistema?
Se sim isto acontece tando nos cdx e nsx.
vc pode usar assim:

Código: Selecionar todos

If !File('seu_index')
    Set index campo Tag cad_080 To cdx_019
    Set index campo1 Tag cad_081 To cdx_019
Else
   Select 1
   Use banco
   Set Index To cdx_019
EndIf

Enviado: 19 Mar 2005 06:29
por Clipper
Prezado Colega

Não vejo a necessidade de refazer os indices toda vez que entra no sistema, porém sem dúdida alguma ao usar o CDX o correto é sempre excluir os arquivos de indices antigos antes de criá-los novamente, para tanto use a função abaixo.

Código: Selecionar todos

*-----------------*
 FUNCTION DELCDX()
*-----------------*
AEVAL(DIRECTORY("C:\SISTEMA\*.CDX"),{|AFILE|FERASE(AFILE[F_NAME])})
RETURN(.T.)
Supondo que seus arquivos de sistema estejam num diretório chamado C:\SISTEMA (basta mudar para o nome correto)
Aí é só chamar essa função antes da recriação dos indices.
DELCDX()
Ps. Você precisará usar a DIRECTRY.CH no inicio do seu programa.

Se você quiser também pode usar o comando RUN porém é possível que você tenha problemas com a falta de memória convencional se você não usar seu sistema em modo protegido, neste caso ficaria.

RUN DEL *.CDX

Até logo.

Marcelo