Identifica a expressão da chave de índice especificado na área de trabalho corrente, e o retorna na forma de uma string.
Sintaxe
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|
nOrdem | numérico | Indica a ordem do índice na lista de índices abertos na área de trabalho corrente. O valor padrão 0 (zero) especifica o índice corrente, independente de sua posição real na lista. |
|
|
Retorno
Nome | Tipo | Descrição |
---|
cRet | caractere | Retorna a expressão da chave do índice especificado na forma de uma string. Caso não haja um índice correspondente, a função IndexKey() retorna uma string vazia (""). |
Observações
- Por padrão, a função IndexKey() opera na área de trabalho selecionada. Contudo, é possível fazê-la operar em uma área de trabalho não selecionada, através de expressão aliasada.
- Caso a pesquisa por uma ordem de índice falhe, seu retorno será uma string vazia ("").
- Caso a pesquisa por uma ordem de índice falhe para uma área não aberta, seu retorno será uma string vazia ("") e ocorrerá a mensagem de erro Work area not in use.
Exemplos
user function test()
local cT1 := "T1"
TCLink()
if TcCanOpen(cT1)
TCDelFile(cT1)
endif
DBCreate(cT1, {{"T1_COD" , "C", 2, 0}, ;
{"T1_NAME", "C", 10, 0}}, "TOPCONN")
DBUseArea(.T., "TOPCONN", cT1, (cT1), .F., .F.)
DBCreateIndex("T1INDEX1", "T1_COD" , {|| T1_COD })
DBCreateIndex("T1INDEX2", "T1_COD+T1_NAME" , {|| T1_COD+T1_NAME })
(cT1)->( DBClearIndex() ) //Força o fechamento dos indices abertos
dbSetIndex("T1INDEX1") //acrescenta a ordem de indice para a área aberta
dbSetIndex("T1INDEX2") //acrescenta a ordem de indice para a área aberta
dbSetOrder(2)
msgInfo("Chave de índice ativo: " + IndexKey(IndexOrd()))
dbSetOrder(1)
msgInfo("Chave de índice ativo: " + IndexKey(IndexOrd()))
DBCloseArea()
tcUnLink()
return
Veja também