ChangeQuery y compatibilidad entre bases de datos
Adapta sintaxis de consulta antes de abrirla por DBAccess.
Descripción general
ChangeQuery(cQuery) devuelve SQL adaptado al banco actual sin abrir cursor ni ejecutar consulta. Documentación exige ANSI, recomienda WHERE y describe límites del parser: no garantiza toda función nativa de cada SGBD. TCGenQry.PRW comunitario transforma antes de TCGenQry/DbUseArea; no delimita filial explícitamente y no debe copiarse como política de acceso. Ejemplo editorial usa tabla ficticia y solo mide texto devuelto. En consultas reales revisar RetSqlName, filial, eliminación lógica y parámetros vinculados. (TOTVS, s.f., ref. 1; EURAI, s.f., ref. 2)
Ejemplo comentado
#Include "Protheus.ch"
User Function Ed299()
Local cSql := "SELECT CODIGO FROM LIVROS WHERE 1 = 1"
Local cAdaptada
// Tabla ficticia; no se abre consulta.
cAdaptada := ChangeQuery(cSql)
ConOut(cValToChar(Len(cAdaptada)))
Return NilLongitud depende de parser y banco; sin conjunto de registros ni valor numérico fijo. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.
- No usar ChangeQuery como sanitización ni autorización. Probar consulta y plan en bancos homologados.
- En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

Comentarios
Todavía no hay comentarios aprobados.
Inicia sesión con Google o Microsoft para comentar.