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.