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

Update – Fevereiro de 2024:

Pessoal, essa função foi desabilitada para rodar fora do APSDU (o artigo original é de 2017, naquela época funcionava).

Então, caso você queira rodar queries em qualquer tela, ai seria indicado usar a zTiSQL (saiba mais aqui).

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

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

10 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)
      
    • Boa tarde Mauro, tudo bem?

      Opa, obrigado pelo feedback, como é um exemplo antigo, de 2017, acabou que com o tempo, essa funcionalidade foi descontinuada de ser acionada através de outros fontes, somente via APSDU.

      Atualizamos o artigo citando também a zTiSQL.

      Um grande abraço.

Deixe uma resposta

Terminal de Informação