OrdDescend
Altera a flag de ordem (crescente/decrescente) do índice, mas não altera fisicamente a ordem dos registros na tabela.
Sintaxe
OrdDescend( < xExp >, [ cIndex ], [ lDesc ] )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
xExp | qualquer | Indica o índice que será utilizado. | X |
|
cIndex | caractere | Nome do índice (opcionalmente com path e nome do arquivo, mas sem extensão). |
|
|
lDesc | lógico | Caso defina como Verdadeiro (.T.), ativa a flag de ordem decrescente; caso contrário, Falso (.F.) ativa a flag de ordem crescente. |
|
|
Retorno
Nome | Tipo | Descrição |
---|---|---|
lRet | lógico | Caso lDesc não seja especificado, retorna o valor corrente para a flag de ordem. Caso seja, retorna o valor prévio da configuração da flag de ordem. |
Observações
- O primeiro parâmetro da função OrdDescend pode ser do tipo Caractere (recebe o alias do índice) ou Numérico (recebe a ordem do índice).
- A utilização da função OrdDescend não reposiciona o ponteiro de registros para o alias aberto.
- Caso a função OrdDescend seja executada sem uma área ativa, a seguinte mensagem de erro será exibida: Work area not in use
- Caso seja repassada uma ordem de índice de valor negativo no primeiro parâmetro da OrdDescend, a seguinte mensagem de erro será exibida: Array index out of bounds
- Caso opte por utilizar um arquivo de índice local, só serão aceitos índices localizados abaixo do RootPath.
- A tentativa de acesso a um índice no disco local resultará na seguinte mensagem de erro: It is not permited to access database local files
Exemplos
O exemplo abaixo utiliza a RDD "TOPCONN", mas a função pode ser utilizada com qualquer uma das RDDs válidas.
user function test() local cT1 := "T1" local cMsg := "" local aReg := {} local nI TCLink() if TCCanOpen(cT1) TCDelFile(cT1) endif DBCreate(cT1, {{"T1_COD" , "N", 2, 0}}, "TOPCONN") DBUseArea(.T., "TOPCONN", cT1, cT1, .F., .F.) for nI := 1 to 10 (cT1)->( DBAppend( .F. ) ) (cT1)->T1_COD := nI (cT1)->( DBCommit() ) next DBCreateIndex("T1INDEX1", "T1_COD", {|| T1_COD }) DBSetIndex("T1INDEX1") DBSetOrder(1) DBGoTop() aReg := {} while !(EOF()) AAdd(aReg, cValToChar(T1_COD) ) dbskip() enddo cMsg := "" for nI := 1 to len(aReg) cMsg += "Registro: " + aReg[nI] + chr(13)+chr(10) next msgInfo("::::::: OrdDescend OFF :::::::" + chr(10) + cMsg) OrdDescend(1, "T1INDEX1", .T.) DBGoTop() aReg := {} while !(EOF()) AAdd(aReg, cValToChar(T1_COD) ) dbskip() enddo cMsg := "" for nI := 1 to len(aReg) cMsg += "Registro: " + aReg[nI] + chr(13)+chr(10) next msgInfo("::::::: OrdDescend ON :::::::" + chr(13)+chr(10) + cMsg) return
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas