DBSetOrder

Define qual indice a tabela vai usar nas buscas. Indice 1 nem sempre e a chave que voce quer — sempre confira na SIX.

Assinatura: DBSetOrder(nOrdem) -> NIL

Retorna: NIL

Define qual indice ativo a tabela usa nas operacoes seguintes (DBSeek, ranges, navegacao). E pre-requisito do DBSeek — sem definir ordem, voce nao sabe por qual chave esta buscando.

Sintaxe

SA1->(DBSetOrder(1))     // indice 1 (filial + codigo)
SA1->(DBSeek(xFilial("SA1") + cCod))

Como descobrir qual indice e qual

Os indices ficam no dicionario SIX. Use o utilitario AP6 do TDS ou query SQL:

SELECT INDICE, CHAVE, DESCRICAO
  FROM SIX010 WHERE INDICE LIKE 'SA1%'
ORDER BY ORDEM

Pegadinhas

Boas praticas

Parâmetros

NomeTipoObrigatórioDescrição
nOrdemNumericsimNumero do indice (1, 2, 3...) conforme cadastrado na SIX.

Exemplos

Buscar por CNPJ (indice diferente)

// Cliente nao esta no indice 1 — indice 3 e por CNPJ
SA1->(DBSetOrder(3))
If SA1->(DBSeek(xFilial("SA1") + cCNPJ))
    ConOut("Cliente: " + SA1->A1_NOME)
EndIf

Veja também