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

ChangeQuery e compatibilidade entre bancos

Adapta a escrita de uma consulta antes de abri-la no DBAccess.

ChangeQuery e compatibilidade entre bancosAdvPL
01 · VISÃO GERAL

Visão geral

ChangeQuery(cQuery) devolve uma string SQL ajustada ao banco em uso; não abre cursor nem executa a consulta. A documentação exige escrita ANSI, recomenda WHERE e descreve limites do parser: não é garantia de compatibilidade de toda função nativa de um SGBD. No código comunitário TCGenQry.PRW, a transformação aparece antes de TCGenQry/DbUseArea; aquele exemplo não delimita filial explicitamente, portanto não deve ser copiado como política de acesso. O exemplo editorial abaixo usa tabela fictícia e somente mede a string devolvida. Para consultas reais, revisar RetSqlName, filtros de filial, exclusão lógica e parâmetros vinculados. (TOTVS, s.d., ref. 1; EURAI, s.d., ref. 2)

03 · EXEMPLO PRÁTICO

Exemplo comentado

#Include "Protheus.ch"
User Function Ed299()
    Local cSql := "SELECT CODIGO FROM LIVROS WHERE 1 = 1"
    Local cAdaptada
    // Tabela ficticia; nenhuma consulta e aberta.
    cAdaptada := ChangeQuery(cSql)
    ConOut(cValToChar(Len(cAdaptada)))
Return Nil
Resultado esperado

O tamanho depende do parser e do banco; não há conjunto de registros nem resultado numérico fixo. 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 usar ChangeQuery como sanitizador de entrada ou substituto de autorização. Testar a consulta e seu plano nos bancos efetivamente homologados.
  • 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. TOTVS. ChangeQuery. TDN. Consulta em 2026-10-26.
  2. EURAI. TCGenQry.PRW. universo_do_desenvolvedor_site, commit a5c83e9490302bdb4a0fc5a9d92c2d569a60773c. Exemplo analisado, sem reprodução integral. Consulta em 2026-10-26.
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