Utilizo o BeginSQL a um bom tempo, e Aprendi fazer de uma forma e sempre segui, porem agora vendo exemplos, vejo que eu faço dois comandos extras, que não vejo outras pessoas fazendo....
Após o beginSQL, eu chamo o DBSelctArea para o alias do BeginSQL, e Depois um DBGoTop
Isso é necessário ? ou faço atoa ? kkkkkk
local alSD5 := getnextalias()
If Select(alSD5) <> 0
(alSD5)->(DbCloseArea())
EndIf
BeginSql alias alSD5
EndSql
DBSelectArea(alSD5) // EXISTE NECESSIDADE ?
(alSD5)->(DBGoTop()) // EXISTE NECESSIDADE ?
while !((alSD5)->(EOF()))
retorno := (alSD5)->D5_QUANT / 3
EndIf
(alSD5)->(DbCloseArea())