DBCreateIndex [AS]
Autor: Eurai Criado: 01/01/2016 Atualizado: 25/04/2025Descrição
DBCreateIndex [AS] - 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
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! 😎
Discussão (0)
Sem comentários ainda
Realize o LOGIN no site para poder comentar