Page tree
Skip to end of metadata
Go to start of metadata

Acrescenta uma ou mais ordens de determinado índice à área de trabalho ativa.

Sintaxe

DBSetIndex( < cIndex > )

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

  • No labels