Tempo de leitura: 2 minutos
Olá, no post de hoje iremos ver como executar query Embedded SQL(SQL integrado ou embutido) utilizando o comandos BeginSQL EndSQL no ADVPL.
Muitas vezes como forma de facilitar o desenvolvimento de querys no Protheus utilizamos o que chamamos de Embedded SQL, que são querys SQL embutidas no código ADVPL. Um dos comandos utilizados para isso é o BeginSQL EndSQL conforme veremos.
Sintaxe:
Exemplo básico de BeginSQL e EndSQL:
BeginSQL Alias 'E2TEMP
SELECT
SE2.E2_NUM,
SE2.E2_PREFIXO
FROM
%table:SE2% SE2
WHERE
SE2.E2_FILIAL= %xfilial:SE2% AND
SE2.E2_NUM= %exp:cNum% AND
SE2.E2_EMISSAO BETWEEN %exp:cDATAINI% AND %exp:cDATAFIM%
SE2.%notDel% ORDER BY %Order:SE2%
EndSQL
Características dos comandos de instruções acima:
Exemplo dos comandos BeginSQL e EndSQL no ADVPL:
//Bibliotecas
#Include "Protheus.ch"
#INCLUDE "TBICONN.CH"
#INCLUDE "topconn.ch"
#include "TOTVS.CH"
/*/{Protheus.doc} fBegSQL
Exemplo da função GetLastQuery em ADVPL
@type function
@author Adilio Costa
@since 24/01/2023
@version 1.0
@?Inscreva-se no Blog ProtheusAdvpl:
https://www.protheusadvpl.com.br
@?Inscreva-se no Canal ProtheusAdvpl:
https://www.youtube.com/protheusadvpl
@?Siga-nos no Instagram:
https://www.instagram.com/protheusadvpl
@?Conheça os Cursos e Formações do Protheus:
https://cursos-e-formacoes-protheusadvpl.gr-site.com/
|Se esse conteúdo foi útil pra você nos ajude divulgando
ele e nossas redes sociais!!|
/*/
//SQL no Protheus - Embedded SQL - fGetLQry
User Function fBegSQL()
Local nRegs := 0
Local cNum := "000004567"
Local cDataIni := "20230801"
Local cDataFim := "20230831"
//Construindo a consulta com BeginSQL EndSQL
BeginSQL Alias 'E2TEMP'
SELECT
SE2.E2_NUM,
SE2.E2_PREFIXO
FROM %table:SE2% SE2
WHERE
SE2.E2_FILIAL= %xfilial:SE2% AND
SE2.E2_NUM= %exp:cNum% AND
SE2.E2_EMISSAO BETWEEN %exp:cDataIni% AND %exp:cDataFim%
SE2.%notDel% ORDER BY %Order:SE2%
EndSQL
//Enquanto houver registros
While !E2TEMP->(EOF())
nRegs++
E2TEMP->(DBSkip())
EndDo
E2TEMP->(DBCloseArea())
FWAlertInfo("Foram processados "+cValToChar(nRegs)+" títulos.", "Atenção")
Return
Bem, finalizamos mais um post aqui no Blog/Site ProtheusAdvpl, espero que você tenha entendido. Qualquer dúvida deixe seu comentário ou nos mande um e-mail para adiliocosta@protheusadvpl.com.br.
Links de referências: