Vídeo Aula – AdvPL 012 – Consultas SQL

Olá pessoal…

Na vídeo aula de hoje, vou falar um pouco consultas SQL utilizando ADVPL (exemplo de Embedded SQL e TCQuery).


Abaixo o exemplo de Embedded SQL:

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zEmbedd
Exemplo de utilização do Embedded SQL
@author Atilio
@since 29/11/2015
@version 1.0
	@example
	u_zEmbedd()
/*/

User Function zEmbedd()
	Local aArea := GetArea()
	
	//Construindo a consulta
	BeginSql Alias "SQL_SB1"
		//COLUMN F3_ENTRADA AS DATE //Deve se usar isso para transformar o campo em data  
		Select	
			B1_COD,
			B1_DESC
		FROM
			%table:SB1% SB1 
		WHERE
			SB1.%notDel%
			AND B1_MSBLQL != '1'			
	EndSql   
	
	//Percorrendo os registros
	While ! SQL_SB1->(EoF())
		ConOut("# SQL_SB1: " + SQL_SB1->B1_COD + "|" + SQL_SB1->B1_DESC)
	
		SQL_SB1->(DbSkip())
	EndDo
	
	SQL_SB1->(DbCloseArea())
	RestArea(aArea)
Return

Abaixo o código fonte do TCQuery:

//Bibliotecas
#Include "Protheus.ch"
#Include "TopConn.ch"

//Constantes
#Define STR_PULA		Chr(13) + Chr(10)

/*/{Protheus.doc} zTCQuery
Exemplo de manipulação de query via AdvPL
@author Atilio
@since 29/11/2015
@version 1.0
	@example
	u_zTCQuery()
/*/

User Function zTCQuery()
	Local aArea	:= GetArea()
	Local cQuery	:= ""
	
	//Montando a Consulta... Tentem evitar o SELECT * pois isso pode travar o TOPCONN
	cQuery := " SELECT "								+ STR_PULA
	cQuery += "   B1_COD AS CODIGO, "				+ STR_PULA
	cQuery += "   B1_DESC AS DESCRI "				+ STR_PULA
	cQuery += " FROM "								+ STR_PULA
	cQuery += "   "+RetSQLName("SB1")+" SB1 "		+ STR_PULA
	cQuery += " WHERE "								+ STR_PULA
	cQuery += "   SB1.D_E_L_E_T_ = '' "			+ STR_PULA
	cQuery += "   AND B1_MSBLQL != '1' "			+ STR_PULA
	cQuery := ChangeQuery(cQuery)
	
	//Executando consulta
	TCQuery cQuery New Alias "QRY_SB1"
	//TCSetField('QRY_SB1', 'CAMPO_DATA', 'D')
	
	//Percorrendo os registros
	While ! QRY_SB1->(EoF())
		ConOut("> QRY_SB1: " + QRY_SB1->CODIGO + "|" + QRY_SB1->DESCRI)
	
		QRY_SB1->(DbSkip())
	EndDo
	
	QRY_SB1->(DbCloseArea())
	RestArea(aArea)
Return

Esses e outros códigos, estão disponíveis gratuitamente no nosso GitHub, acesse em github.com/dan-atilio/AdvPL.

Se quiser fazer o download desses códigos ou do conteúdo mostrado na vídeo aula, acesse nosso GitHub pelo link github.com/dan-atilio/AdvPL (Exemplos > Vídeo Aulas > 012 – Consultas SQL).

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

About Dan_Atilio

Analista e desenvolvedor de sistemas na TOTVS Oeste Paulista Bauru. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

Deixe uma resposta