Altera a flag de ordem (crescente/decrescente) do índice, mas não altera fisicamente a ordem dos registros na tabela.
OrdDescend( < xExp >, [ cIndex ], [ lDesc ] ) |
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. |
|
|
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. |
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 |