Convertendo uma variável para ser usada em query através da ValToSQL – Maratona AdvPL e TL++ 525

Nesse vídeo demonstraremos a utilização da função ValToSQL, que serve para converter uma variável, e já deixar no padrão para ser usada dentro de um filtro em uma query SQL.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe525
Função que pega uma variável e ja converte para ser usada em um filtro no SQL (adicionando apóstrofos)
@type Function
@author Atilio
@since 06/04/2023
@see https://tdn.totvs.com/pages/releaseview.action?pageId=6814752
@obs 

    Função ValToSQL
    Parâmetros
        Recebe a variável ou expressão a ser validada
    Retorno
        Retorna a expressão já pronta para ser usada no filtro com os apóstrofos

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe525()
    Local aArea      := FWGetArea()
    Local cQuery     := ""
    Local cFilAux    := "01"
    Local dDataAux   := MonthSub(Date(), 1)

    //Monta a query
    cQuery := " SELECT " + CRLF
    cQuery += "     F2_DOC, F2_EMISSAO, F2_VALBRUT " + CRLF
    cQuery += " FROM " + CRLF
    cQuery += "     " + RetSQLName("SF2") + " SF2 " + CRLF
    cQuery += " WHERE " + CRLF
    cQuery += "     F2_FILIAL = " + ValToSQL(cFilAux) + " " + CRLF
    cQuery += "     AND F2_EMISSAO >= " + ValToSQL(dDataAux) + " " + CRLF
    cQuery += "     AND SF2.D_E_L_E_T_ = '' " + CRLF

    //Exibe o resultado
    FWAlertInfo(cQuery, "Teste ValToSQL")

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e até próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

2 Responses

  1. Alexandre Behling disse:

    Essa é muito útil, valeu Atilio.

Deixe uma resposta

Terminal de Informação