Posicione

Atalho que faz DBSeek + retorno do campo solicitado em uma chamada. Preserva area corrente. Padrao em consultas pontuais.

Assinatura: Posicione(cAlias, nOrdem, cChave, cCampo) -> xValor

Retorna: Any

Posicione e a forma mais limpa de buscar 1 valor numa tabela: posiciona via DBSeek e ja retorna o campo, sem precisar do DBSelectArea + DBSetOrder + verificacao manual.

Sintaxe

xValor := Posicione(cAlias, nOrdem, cChave, cCampoOuExpressao)

Exemplo

// Pegar nome do cliente:
cNome := Posicione("SA1", 1, xFilial("SA1") + cCodCli + cLojaCli, "A1_NOME")

// Expressao calculada:
cDesc := Posicione("SB1", 1, xFilial("SB1") + cCod, "AllTrim(B1_DESC) + ' (' + B1_UM + ')'")

Por que usar

Pegadinha

Se a chave nao existir, retorna valor vazio do tipo do campo (string vazia, 0, .F., data zerada). Use Empty() pra verificar.

Parâmetros

NomeTipoObrigatórioDescrição
cAliasCharactersimAlias da tabela
nOrdemNumericsimNumero do indice (DBSetOrder)
cChaveCharactersimChave concatenada
cCampoCharactersimCampo ou expressao a retornar

Exemplos

Buscar nome

cNome := Posicione("SA1", 1, xFilial("SA1") + cCod + cLoja, "A1_NOME")

Veja também