Seleciona a ordem ativa da área de trabalho.
Sintaxe
DBSetOrder( [ nOrder ] )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
|---|---|---|---|---|
nOrder | numeric | 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.
- nOrder deve ser maior ou igual a zero.
- Caso não haja uma área de trabalho aberta com um alias, o programa será encerrado com ocorrência de erro recuperável "Work area not in use".
- Caso nOrder seja maior do que a quantidade de índices existentes, o programa será encerrado com ocorrência de erro recuperável "DBSetOrder - Index not found: cAlias Order Number: nOrder", onde cAlias é o alias da área de trabalho e nOrder é o número da ordem solicitada.
- Se nOrder não for informada ou for um valor menor que zero, a função não fará nada.
- Caso seja definida 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.
- Quando é alterada a ordem atual de uma determinada tabela, o registro atual não é desposicionado.
- Se a ordem solicitada for diferente da ordem atual e tiver alterações pendentes, as alterações são gravadas e a ordem é alterada. Caso haja erros durante o processo de gravação, a ordem não é alterada e o programa é encerrado com ocorrência de erro recuperável Update error: (DBSetOrder)cName, onde cName é o nome da tabela.
- Para saber o número da ordem ativa, utilize a função IndexOrd. Para saber a chave do índice da ordem ativa, utilize a função IndexKey.
Exemplos
user function test()
Local cT1 := "T1"
Local nIdxOrd := -1
Local cIdxKey := ""
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( .T., "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()
cIdxKey := IndexKey( nIdxOrd )
conout( "Ordem de indice ativo: " + cValToChar( nIdxOrd ) + Chr( 13 ) + Chr( 10 ) + "Chave de indice ativo: " + cIdxKey )
TCUnLink()
return
Veja também
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas