Coisas q parecem não terem sentido ou eu q não tenho o conhecimento necessário... vejam a situação abaixo:
Código: Selecionar todos
Use Clientes alias Clientes Shared New
DbSetIndex('Clientes')
Clientes->(OrdSetFocus(1)) // Ordem de Codigo
ConRec->( DBGOTOP() )
WHILE ConRec->( !EOF() )
Clientes->( ORDSETFOCUS(1) )
if Clientes->( !DBSEEK(ConRec->Codigo) )
if !CriaCliente(ConRec->Codigo, ConRec->Nome, ConRec->Prazo)
ConRec->( DBSKIP() )
LOOP
endif
endif
...
END
//------------------------------------------------------------------------------
static function CriaCliente(cCodigo, cNome, nPrazo)
if empty(cNome)
return .F.
endif
Clientes->( dbAppend() )
Clientes->Codigo := cCodigo
Clientes->Nome := cNome
Clientes->Prazo := nPrazo
Clientes->( LiberaReg() )
return .T.
********************************
procedure LiberaReg()
goto RecNo()
dbcommit()
dbSkip( 0 ) // dica Quintas topic 16174
unlock
returnHj no cliente praticamente toda a tabela de clientes quintuplicou os nomes, ou seja, toda vez q emitiu o relatorio pra cada vez criou um copia de cada cliente com conta em aberto.
Então não é a primeira vez q percebo q parece q o DBSeek não obedece o indice mesmo ele estando setado.
Ai reindexa o sistema e funciona... mas como saber se o índice esta realmente funcionando? Será q estou viajando na maionese... alguém q entende bem como funciona os indices, indexar / reindexar poderia explicar?
Hj eu reindexo o sistema somente na virada de mês e qdo atualiza a versão, fora isto não.
[] ´s



