Como chamar o Query Analyzer de qualquer lugar do Protheus

Olá pessoal…

Sabem aquela funcionalidade do APSDU, o Query Analyzer, nessa postagem vou mostrar como chamar ela em qualquer lugar, até mesmo no Fórmulas.

A funcionalidade Query Analyzer serve para abrir a conexão com uma base de dados e executar consultas SQL (por exemplo, SELECT * FROM TABELA).

É um recurso bastante útil quando não se tem instalado os clients de Oracle, SQL Server, etc ou quando não se tem acesso a senha do banco de dados.

A função que abre o Query Analyzer, é a ApQryAn(), portanto basta fazer a chamada dessa função onde você deseja, que será aberto a tela para você escrever a sua consulta.

Query Analyzer

Query Analyzer

Por exemplo, criei até uma user function para testar:

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zTeste
Função de teste para abrir o Query Analyzer
@author Atilio
@since 07/10/2017
@version 1.0
@type function
/*/

User Function zTeste()
	Local aArea := GetArea()
	
	//Chamando o Query Analyzer
	ApQryAn()
	
	RestArea(aArea)
Return

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

8 Responses

  1. Rone disse:

    Legal fiz o teste funcionou na versão11 do Protheus usando o formulas mas na versão 12 não abre pelo formulas, tem outra forma de chamar no Protheus12?

  2. Fernando Sauer disse:

    Top, bem mais pratico do que abrir a APSDU sempre que precisa testar uma query.

  3. DANIEL PIMENTA MACHADO disse:

    Boa tarde. Maravilha essa solução, tem conhecimento da função que abre as tabelas também pelo sdu?
    Obrigado.

  4. Maicon Macedo disse:

    Olá, Dan_Atilio. Tudo bem?
    Meu caro, estou consultando este post no finalzinho de 2020.
    Aparentemente, a TOTVS inseriu uma condição para executar o ApQryAn() em outros módulos que não seja o APSDU.
    Fui tentar hoje, após muito tempo, e surgiu uma mensagem: “Opção disponível somente para o módulo APSDU”.

    Você já viu isso?
    Sabe me dizer se tem algum alternativa?

    Att,
    Maicon Macedo

    • Dan_Atilio disse:

      Fala Maicon, tudo sim graças a Deus e você?
      Olha, no padrão realmente bloquearam, mas o que você pode tentar (não testei e não sei se daria certo), é você forçar que estaria usando o APSDU, com a função SetFunName, similar abaixo:

      cFunBkp := FunName()
      
      SetFunName("APSDU)
      ApQryAn()
      SetFunName(cFunBkp)
      

Deixe uma resposta