Seleciona a ordem ativa da área de trabalho.
Esta ordem é responsável sequência lógica dos registros da tabela corrente.

Sintaxe

DBSetOrder( [ nOrdem ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

nOrdem

numérico

Indica o número da posição da ordem na lista de ordens ativas.

 

 

Retorno

Nome

Tipo

Descrição

uRet

nil

Sempre retorna nulo.

Observações

  • Esta ordem é a responsável pela sequência lógica dos registros da tabela corrente.
  • Caso seja setada a ordem 0 (zero), a tabela corrente, na área de trabalho, será posicionada na ordem em que os registros foram inseridos, porém os indexadores são mantidos abertos.
  • É importante salientar que, quando alterada a ordem atual de uma determinada tabela, o registro atual não é desposicionado.

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}, ;
                  {"FIELD_TYPE", "C", 10, 0}}, "TOPCONN")

  DBUseArea(.F., "TOPCONN", cT1, (cT1), .F., .F.)

  DBCreateIndex("T1INDEX1", "FIELD_COD"            , {|| FIELD_COD            })
  DBCreateIndex("T1INDEX2", "FIELD_COD+FIELD_NAME" , {|| FIELD_COD+FIELD_NAME })
  DBCreateIndex("T1INDEX3", "FIELD_NAME+FIELD_TYPE", {|| FIELD_NAME+FIELD_TYPE})
  (cT1)->( DBClearIndex() ) //Força o fechamento dos índices abertos
  
  dbSetIndex("T1INDEX1") //acrescenta a ordem de índice para a área aberta
  dbSetIndex("T1INDEX2") //acrescenta a ordem de índice para a área aberta
  dbSetIndex("T1INDEX3") //acrescenta a ordem de índice para a área aberta
  
  DBSetOrder(2)
  nIdxOrd := IndexOrd()
  msgInfo("Ordem de índice ativo: " + cValToChar( nIdxOrd ) + chr(13)+chr(10) + "Chave de índice ativo: " + IndexKey(nIdxOrd))
  
tcUnLink()

return

Veja também


  • Sem rótulos