Boa tarde Pessoal, Sou novo em tudo que se possa imaginar em relação a ADVPL. Estou tentando criar um relatório, porém quando o executa o arquivo vem vazio. Essa é a query:
BeginSql alias "FISREL0001" %noParser%
SELECT F1.F1FILIAL AS FILIAL , F1.F1_DOC AS DOC , F1.F1_SERIE AS SERIE , F1.F1_FORNECE AS FORN , F1.F1_LOJA AS LOJA , (SELECT A2.A2_NOME FROM SA2200 A2 (NOLOCK) WHERE A2.D_E_L_E_T <> '*' AND A2.A2_COD = F1.F1_FORNECE AND A2.A2_LOJA = F1.F1_LOJA) AS NOME_FORN , F1.F1_DTDIGIT AS DATA_DIG , CASE WHEN OBEN.COD_OBJ IS NULL OR OBEN.COD_OBJ = ' ' THEN 'NAO' WHEN OBEN.COD_OBJ != ' ' THEN 'SIM' END AS ANEXO , OBEN.COD_OBJ AS COD_OBJ , OBEN.COD_ENTIDAD AS COD_ENTIDAD , B.ACB_OBJETO AS OBJETO , B.ACB_DESCRI AS OBEJTO_DESCR
FROM SF1200 F1 (NOLOCK) LEFT JOIN (SELECT C9.AC9CODOBJ AS COD_OBJ , C9.AC9_FILENT AS FILIAL , C9.AC9_ENTIDA AS ENTIDAD , C9.AC9_CODENT AS COD_ENTIDAD , LEFT(C9.AC9_CODENT, 9) AS NF , SUBSTRING(C9.AC9_CODENT, 10, 3) AS NF_SERIE , SUBSTRING(C9.AC9_CODENT, 13, 6) AS FORNEC , SUBSTRING(C9.AC9_CODENT, 19, 2) AS LOJA FROM AC9200 C9 (NOLOCK) WHERE C9.D_E_L_E_T <> '' AND C9.AC9ENTIDA = 'SF1') AS OBEN ON (F1.F1_DOC = OBEN.NF AND F1.F1_SERIE = OBEN.NF_SERIE AND F1.F1_FORNECE = OBEN.FORNEC AND F1.F1_LOJA = OBEN.LOJA) LEFT JOIN ACB200 B ON (OBEN.COD_OBJ = B.ACB_CODOBJ AND B.D_E_L_E_T <> '') WHERE F1.DE_L_E_T <> '*' AND F1.F1_DTDIGIT between %exp:MV_PAR01% and %exp:MV_PAR02% ORDER BY F1.F1_DTDIGIT
EndSql
Funciona perfeitamente no SQL Server. O uso de funções SQL funciona utilizando Embedded SQL?
O Embedded SQL trabalhar normalmente com funções, você está apontando para o mesmo banco de dados? Monitore a thread do DBAccess, ele vai exibir como ele montou a query e enviou a banco de dados, assim você pode ver se foi gerado algum problema na mesma.
— Daniel Mendes 15 de Jan de 2021Outra sugestão para verificar a query executada é colocar um breakpoint logo após a execução do Embedded SQL e utilizar a função GetLastQuery() com debug ainda pausado. Ela retorna irá retornar um array com algumas informações, incluindo a query já pronta para ser executada no banco.
— Lucas Briesemeister 18 de Jan de 2021