Buscando informações da última query executada com a GetLastQuery – Maratona AdvPL e TL++ 277

Nesse vídeo demonstraremos a utilização da função GetLastQuery, que serve para buscar informações da última query executada através da Embedded SQL.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe277
Retorna um array com a última query executada via Embedded
@type  Function
@author Atilio
@since 21/02/2023
@see https://tdn.totvs.com/display/public/framework/Embedded+SQL
@obs 

    Função GetLastQuery
    Parâmetros
        Não possui parâmetros
    Retorno
        Retorna um array com as posições [1] Alias aberto; [2] Query executada; [3] Campos convertidos na query; [4] Se foi ou não utilizado ChangeQuery; [5] Tempo que demorou para executar
    
    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe277()
    Local aArea  := FWGetArea()
    Local cTipos := "PI;PA;"
    Local cWhere := "%B1_TIPO IN " + FormatIn(cTipos, ";") + " AND B1_LOCPAD = '01'%"
    Local aQuery := {}
    
    //Construindo a consulta
    BeginSql Alias "SQL_SB1"

        //Definindo campos com tipo específico
        COLUMN B1_UCOM AS DATE

        //Definindo a query que será executada    
        SELECT    
            B1_COD,
            B1_DESC,
            B1_UCOM 
        FROM
            %table:SB1% SB1 
        WHERE
            B1_FILIAL  = %xFilial:SB1%
            AND B1_MSBLQL != '1'
            AND %Exp:cWhere%
            AND SB1.%notDel%
    EndSql
    
    //Exibe a query executada
    aQuery := GetLastQuery()
    ShowLog(aQuery[2])
    SQL_SB1->(DbCloseArea())

    FWRestArea(aArea)
Return

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.

Deixe uma resposta

Terminal de Informação