DBCreateIndex [AS]

DBCreateIndex [AS]
Author: Eurai
Inclusão: 01/01/2016
Alteração: 26/07/2021

Descrição

Cria um novo arquivo de índice

 

Sintaxe

DBCreateIndex( <cNome>, <cExpChave>, <bExpChave>, <lUnico> )

 

Parâmetros

Par Nome Tipo Descrição Default Obg Ref
01 cNome
Caracter
Indica o nome do arquivo de índice que será criado
  X  
02 cExpChave
Caracter
Indica a expressão das chaves do índice que será criado na forma de string
  X  
03 bExpChave
Bloco de Código
Indica a expressão das chaves do índice que será criado na forma executável
     
04 lUnico
Boolean
Indica se, verdadeiro (.T.), cria o índice como único; caso contrário, falso (.F.)
.F.    

 

Retorno

Retorno Tipo Descrição

 

Exemplo

#INCLUDE "TOTVS.CH"
 
User Function dbCreateIndex()
Local cNomArq	:= ''
Local cSeconds 	:= "9"+StrZero(Seconds(),5,0)
Local aCampos	:= {}
 
 
Local cIndice 	:= "ZZ1_USER+ZZ1_NOME"
Local cInd01 	:= GetNextAlias()
 
 
aAdd( aCampos, { 'ZZ1_USER'		, 'C', TamSX3('ZZ1_USER')[01]	, TamSX3('ZZ1_USER')[02] } )
aAdd( aCampos, { 'ZZ1_NOME'		, 'C', TamSX3('ZZ1_NOME')[01]	, TamSX3('ZZ1_NOME')[02] } )
 
cNomArq := "GeraTMP_SC" + cSeconds //CriaTrab(aCampos)
dbCreate( cNomArq, aCampos, __LocalDriver )
dbUseArea( .T.,, cNomArq, "TRB", .F., .F. )
 
 
 
//INDICE
TCDelFile(cInd01)
dbCreateIndex( cInd01, cIndice, {|| cIndice }, .F. )
 
Return( Nil )

Resultado
dbcreateindex_-_resultado_01                            

 

 

Informações adicionais

Com exceção do RDD c-tree, a tabela corrente não precisa estar aberta em modo exclusivo para a criação do índice, pois na criação de índices, no c-tree, é alterada a estrutura da tabela, mas é necessário que a tabela esteja aberta em modo exclusivo).

 

 

 

Caso exista um arquivo com o mesmo nome, definido no parâmetro , ele será excluído e o novo criado. No entanto, são realizados os seguintes passos

Salva fisicamente as alterações realizadas na tabela corrente.

Fecha todos os arquivos de índice abertos.

Cria o novo índice.

Posiciona o novo índice como ordem corrente.

Posiciona a tabela corrente no primeiro registro do índice

 



Gostou? Compartilhe com seus amigos e deixe um comentário! 😎  

Esse conteúdo te ajudou? Ajude o canal com doação
Compartilhar
Comentários