- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- DbCloseArea dando erro em um gatilho
×
Linguagem de Programação ADVPL
Perguntas DbCloseArea dando erro em um gatilho
- Marco Antonio
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 20
- Obrigados Recebidos: 0
7 anos 7 meses atrás #31984
por Marco Antonio
DbCloseArea dando erro em um gatilho foi criado por Marco Antonio
Boa tarde!
Tenho um campo de produto que dispara um gatilho onde é pesquisado o valor desse produto em um contrato do cliente e preenche o campo de valor. O gatilho chama uma função que tem uma query. No momento do comando DBCloseArea, há um erro de gatilho dizendo que o Alias não existe. Alguém poderia me ajudar? Obrigado e segue código:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TOPCONN.CH"
User Function GatAgTec(cCli,cLoja,cProd)
Local cAlias := GetNextAlias()
Local cSQL := ""
Local lAchou := .f.
Local nRet := 0
cSQL += "SELECT TOM_SERVIC, TOM_VALOR, TOL_DTTERM FROM "+ RetSqlName("TOM") +" TOM INNER JOIN "+ RetSqlName("TOL") +" TOL ON"
cSQL += " TOL_NUMERO = TOM_NUMERO AND TOL.D_E_L_E_T_ = '' AND TOL_CLIENT = '"+cCli+"' AND TOL_LOJACL = '"+cLoja+"' AND TOL_STATUS IN ('1','3') WHERE TOM.D_E_L_E_T_ = '' ORDER BY TOL_DTTERM DESC"
DBUseArea(.T., "TOPCONN", TCGenQry(,,cSQL), cAlias, .T., .T.)
While (cAlias)->(!EOF())
If ALLTRIM((cAlias)->TOM_SERVIC) == ALLTRIM(cProd)
nRet:= TOM_VALOR
Exit
Endif
(cAlias)->(DbSkip())
EndDo
(cAlias)->(DbCloseArea())
Return nRet
Tenho um campo de produto que dispara um gatilho onde é pesquisado o valor desse produto em um contrato do cliente e preenche o campo de valor. O gatilho chama uma função que tem uma query. No momento do comando DBCloseArea, há um erro de gatilho dizendo que o Alias não existe. Alguém poderia me ajudar? Obrigado e segue código:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TOPCONN.CH"
User Function GatAgTec(cCli,cLoja,cProd)
Local cAlias := GetNextAlias()
Local cSQL := ""
Local lAchou := .f.
Local nRet := 0
cSQL += "SELECT TOM_SERVIC, TOM_VALOR, TOL_DTTERM FROM "+ RetSqlName("TOM") +" TOM INNER JOIN "+ RetSqlName("TOL") +" TOL ON"
cSQL += " TOL_NUMERO = TOM_NUMERO AND TOL.D_E_L_E_T_ = '' AND TOL_CLIENT = '"+cCli+"' AND TOL_LOJACL = '"+cLoja+"' AND TOL_STATUS IN ('1','3') WHERE TOM.D_E_L_E_T_ = '' ORDER BY TOL_DTTERM DESC"
DBUseArea(.T., "TOPCONN", TCGenQry(,,cSQL), cAlias, .T., .T.)
While (cAlias)->(!EOF())
If ALLTRIM((cAlias)->TOM_SERVIC) == ALLTRIM(cProd)
nRet:= TOM_VALOR
Exit
Endif
(cAlias)->(DbSkip())
EndDo
(cAlias)->(DbCloseArea())
Return nRet
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- DbCloseArea dando erro em um gatilho
Tempo para a criação da página:0.115 segundos