Tempo aproximado para leitura: 00:03:00 min
Ocorrência
Quando utilizado funções de execução de query no banco e a declaração de pesquisa contém o comando WITH, está sendo gerado erro em tempo de execução:
A função ChangeQuery não pode ser utilizada para queries com a palavra reservada WITH. on CHANGEQUERY(APLIB070.PRW)
Ambiente
Cross Segmentos - Backoffice (Linha Protheus) – ADVPL – A partir da versão 12.1.17
Causa
A função ChangeQuery() não reconhece queries que contenham a palavra WITH, por isso a mesma entrava em loop.
Como a mesma não é homologada para trabalhar com queries que utilizem a declaração WITH, ela passou a verificar a existência do comando na query enviada e gerar exceção (error.log) informando que não está apta a trabalhar com queries deste tipo.
Solução
Não utilizar a função ChangeQuery() e nem funções que trabalhem com ela internamente.
Uma das funções que pode ser utilizada com a declaração WITH é a TcGenQry().
Saiba mais
TCGENQRY
0 Comentários