Usina BRAdvPL Guia
Entrar
← Todos os tópicos
GUIA PRÁTICOEm revisão

SqlOrder e conversão de ordens AdvPL para SQL

SqlOrder(cIndexExpression) -> cSqlFields

Examina a conversão de uma expressão de índice para ORDER BY.

SqlOrder e conversão de ordens AdvPL para SQLAdvPL
01 · VISÃO GERAL

Visão geral

O exemplo de Atilio passa IndexKey para SqlOrder e descreve a transformação de campos concatenados em lista SQL. É evidência comunitária, não um conversor universal de expressões AdvPL: funções, apelidos, collation e regras do SGBD precisam de verificação. A função não cria índice físico nem adiciona sozinha o comando ORDER BY a uma consulta. O bloco usa expressão fixa didática, sem selecionar ordem de tabela nem montar SQL a partir de entrada externa. (Fontes: refs. 1–1.)

02 · SINTAXE

Sintaxe

SqlOrder(cIndexExpression) -> cSqlFields
03 · EXEMPLO PRÁTICO

Exemplo comentado

#Include "Protheus.ch"

User Function Ed672()
    // Bloco nao invocado: conferir conversao antes de incorporar ao SQL.
    Local bConverter := {|| SqlOrder("B1_FILIAL+B1_COD")}
    ConOut(ValType(bConverter))
Return Nil
Resultado esperado

Cria bloco B; a lista B1_FILIAL, B1_COD é o comportamento descrito pela fonte, não aferido aqui. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

BOAS PRÁTICAS
  • Não concatenar uma expressão de ordenação fornecida pelo usuário. Usar lista permitida de campos e validar SQL no SGBD-alvo.
  • Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Conteúdos relacionados

REFERÊNCIAS
  1. Atilio. dan-atilio/AdvPL. Maratona de Exemplos/Exemplo_454_Funcao_SqlOrder.prw. Arquivo completo consultado; adaptação editorial. Consulta em 2026-10-28.
Situação
Em revisão
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha