Quintas deixa ver se entendi...
Meu código:
#include "hbgtinfo.ch"
REQUEST DBFCDX
REQUEST HB_GT_WVT_DEFAULT
FUNCTION MAIN
RDDSETDEFAULT('DBFCDX')
DBSETDRIVER('DBFCDX')
Set Path to ..\TABELAS
Set Date Brit
Set Epoch to Year( Date()-80 )
Set Cent On
Set Deleted On
Set Autopen On
hb_gtinfo(HB_GTI_MAXIMIZED, .T.)
Use Cliente.DBF alias Cli New Share
cTEXTO := ''
FOR X = 1 TO OrdCount()
DbSetOrder(X)
cTEXTO += STR(X,2)+'-'+ORDKEY(INDEXORD()) + HB_EOL()
NEXT
Alert( cTexto )
DbSetOrder(2)
DbGoTop()
Browse()
Index on datref tag data ADDITIVE TEMPORARY
DbSetOrder(5)
OrdDestroy( ORDKEY(INDEXORD()) )
cTEXTO := ''
FOR X = 1 TO OrdCount()
DbSetOrder(X)
cTEXTO += STR(X,2)+'-'+ORDKEY(INDEXORD()) + HB_EOL()
NEXT
Alert( cTexto )
DbCloseall()
RETURN NIL
O arquivo de clientes tem quatro tags no CDX
Daà na linha 30 eu crio a tag temporária no indice... Index on datref tag data ADDITIVE TEMPORARY
e na linha 32 apago essa tag com o comando OrdDestroy(ORDKEY(INDEXORD()) ).. ( É esse mesmo o comando? tentei também OrdKeyDel() ) com OrdkeyDel retorna .f. e OrdDestroy retorna .t.
Só que quando uso o ordcount() retorna que ainda existe 5 tags no indice..
Se foi criado com TEMPORARY não deveria ser na memória? A partir do momento que uso o orddestroy nao tinha que apagar essa tag?
Se apago o CDX e uso a rotina de indexação para criar o Ãndice de novo e cria com 4 tags o que é certo...
O que tô fazendo de errado?
Obrigado
Rubens