Acrescenta uma ou mais ordens de determinado índice à área de trabalho ativa.
Sintaxe
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|
cIndex | caractere | Indica o nome do índice que será aberto. | X | |
Retorno
Nome | Tipo | Descrição |
---|
uRet | nil | Sempre retorna nulo. |
Observações
- Caso cIndex não exista, será apresentada a mensagem de erro: "Open index error: XXX". Onde XXX será o conteúdo de cIndex.
- Se a work area não estiver em uso, será apresentada a mensagem de erro: "Work area not in use".
- Caso informe uma string vazia no parâmetro da DBSetIndex, será apresentada a mensagem de erro: OrdListAdd: Invalid empty filename
- Abrir um novo índice não fecha os índices atualmente abertos.
- Quando a área de trabalho atual já têm algum índice aberto, a ordem atual não é alterada com a abertura de um novo índice.
- Quando o arquivo de índice possui apenas uma ordem, e a tabela não tenha nenhum índice aberto, a mesma é acrescentada na lista de ordens abertas e torna-se ativa.
- Quando o índice possui mais de uma ordem, e a tabela não tenha nenhum índice aberto, todas as ordens são acrescentadas na lista de ordens abertas e a primeira torna-se ativa.
Exemplos
user function test()
local cT1 := "T1"
TCLink()
if TCCanOpen(cT1)
TCDelFile(cT1)
endif
DBCreate(cT1, {{"FIELD_COD" , "C", 2, 0}, ;
{"FIELD_NAME", "C", 10, 0}}, "TOPCONN")
DBUseArea(.T., "TOPCONN", cT1, (cT1), .F., .F.)
DBCreateIndex("T1INDEX1", "FIELD_COD" , {|| FIELD_COD })
DBCreateIndex("T1INDEX2", "FIELD_COD+FIELD_NAME" , {|| FIELD_COD+FIELD_NAME })
(cT1)->( DBClearIndex() ) //Força o fechamento dos indices abertos
dbSetIndex("T1INDEX2") //acrescenta a ordem de indice para a área aberta
msgInfo( "Índice ativo: " + upper(DBOrderInfo(7)) )
tcUnLink()
return
Veja também