Histórico da Página
...
Portuguese | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Função: DBCreateIndexCria um novo arquivo deíndice para o alias da tabela corrente.para Tabela/View Sintaxe
Parâmetros/Elementos
| Lógico | Indica se, verdadeiro (.T.), cria o índice como único; caso contrário, falso (.F.) (padrão).
lógico | Valor lógico para especificar que o índice será único. |
|
|
Retorno
Nome | Tipo | Descrição |
---|---|---|
uRet | nil | Retorno sempre é nulo. |
Observações
Caso exista um arquivo com o mesmo nome, definido no parâmetro <cNome>, 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.
Com exceção do RDD
cC-
treeTree, 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,
masmas é necessário que a tabela esteja aberta em modo exclusivo.
Exemplos
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
STATIC FUNCTION CreateTable()
TCDelFile('T1')
TCDelFile('T2')
TCDelFile('VIEW1')
DBCreate('T1', {{"FIELD_NAME", "C", 10, 0}, ;
{"FIELD_TYPE" , "C", 10, 0}}, 'TOPCONN')
DBCreate('T2', {{"FIELD_NAME", "C", 10, 0}, ;
{"FIELD_TYPE" , "C", 10, 0}, ;
{"FIELD_ID" , "N", 3, 0}}, 'TOPCONN')
TCViewOne("VIEW1", "T1")
RETURN
FUNCTION Example()
Local cT2 := "T2"
Local cView1 := "VIEW1"
TCLink()
CreateTable()
// Criação de Indice na Tabela
DBUseArea(.F., 'TOPCONN', cT2, (cT2), .F., .F.)
(cT2)->(DBCreateIndex('T2_IND', 'FIELD_NAME', { || 'FIELD_NAME' }))
IIF(TCCanOpen('T2', 'T2_IND'), CONOUT('TRUE'), CONOUT('FALSE')) // retorna .T., ou seja, tabela e índice existem
DBCloseArea()
// Criação de Indice na View
DBUseArea(.F., 'TOPCONN', cView1, (cView1), .F., .F.)
TCSetVIdx( .T. )
(cView1)->(DBCreateIndex('VIEW1_IND', 'FIELD_NAME'))
TCSetVIdx( .F. )
IIF(TCCanOpen('VIEW1', 'VIEW1_IND'), CONOUT('TRUE'), CONOUT('FALSE')) // retorna .T., ou seja, view e índice existem
DBCloseArea()
TCUnlink()
RETURN
|
Abrangência
Esta função está disponível no Application Server - build 7.00.131227A, com data de geração superior a 09/08/2016 e depende de um DBAccess com build superior a 20160402.
Veja também
//Este exemplo, apresenta como se pode criar um novo arquivo de índice formando a ordem sobre
//os campos Nome e End e não aceitará duplicação.
USE Cliente VIA "DBFCDX" NEW
DBCreateIndex("\teste\ind2.cdx","Nome+End",{ || Nome+End },.T.)