TcQuery é o comando em ADVPL que executa um SQL no banco de dados e retorna o resultado em uma área de trabalho.
0. Carregar as bibliotecas
#INCLUDE 'PROTHEUS.CH' #INCLUDE 'TOPCONN.CH'
1. Criar uma user function e neste user function, realizar a busca em SQL
Local cQuery := "SELECT * FROM SA1010 WHERE D_E_L_E_T_ = ' '" TcQuery cQuery New Alias "QRY"
2. Selecionar esta área de trabalho QRY
dbSelectArea("QRY")
3. Realizar o loop nesta área de trabalho para exibir o resultado
While !QRY->(EOF()) //Enquando não for fim de arquivo
Conout(QRY->A1_COD + "/" + QRY->A1_LOJA + " - " + QRY->A1_NOME) //Imprime resultado no log
QRY->(dbSkip()) //Anda 1 registro pra frente
EndDo
4. Fechar a área de trabalho que não será mais utilizada
QRY->(dbCloseArea()) //Fecha a área de trabalho
Abaixo, segue o código completo:
#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'TOPCONN.CH'
User Function FBSA101()
Local cQuery := "SELECT * FROM SA1010 WHERE D_E_L_E_T_ = ' '"
TcQuery cQuery New Alias "QRY"
dbSelectArea("QRY")
While !QRY->(EOF()) //Enquando não for fim de arquivo
Conout(QRY->A1_COD + "/" + QRY->A1_LOJA + " - " + QRY->A1_NOME) //Imprime resultado no log
QRY->(dbSkip()) //Anda 1 registro pra frente
EndDo
QRY->(dbCloseArea()) //Fecha a área de trabalho
Return Nil
Existem outras formas, com outros comandos, como por exemplo o TcGenQry
Espero ter ajudado.
