No vídeo de hoje, vamos demonstrar em como pegar um campo no SQL e trazer o conteúdo dele como Date.
A dúvida de hoje, nos perguntaram, que ao executar uma query, o campo não vem formatado como Data (DD/MM/YYYY).
Pensando nisso, montamos um exemplo, onde vamos mostrar a utilização da função TCSetField para transformar de caractere para data.
Segue abaixo o vídeo exemplificando:
E abaixo o código fonte desenvolvido:
//Bibliotecas
#Include "tlpp-core.th"
#Include "TopConn.ch"
//Declaração da namespace
Namespace custom.terminal.youtube
//Constantes
#Define CRLF Chr(13) + Chr(10) //Carriage Return Line Feed
/*/{Protheus.doc} User Function video0182
Exemplo de como transformar uma coluna no tipo Data
@type Function
@author Atilio
@since 21/06/2024
@example custom.terminal.youtube.u_video0182()
/*/
User Function video0182()
Local aArea := FWGetArea() As Array
Local cQuery := "" As Character
Local cMessage := "" As Character
//Monta uma query simples, buscando informações da SC5, pegando um campo de Data
cQuery += " SELECT TOP 5 " + CRLF
cQuery += " C5_EMISSAO AS DTEMIS " + CRLF
cQuery += " FROM " + CRLF
cQuery += " " + RetSQLName("SC5") + " SC5 " + CRLF
cQuery += " WHERE " + CRLF
cQuery += " C5_FILIAL = '" + FWxFilial("SC5") + "' " + CRLF
cQuery += " AND SC5.D_E_L_E_T_ = ' ' " + CRLF
TCQuery cQuery New Alias "QRY_SC5"
//Vamos ver como que está o conteúdo
cMessage += "Tipo: " + ValType(QRY_SC5->DTEMIS) + " | Conteúdo: " + QRY_SC5->DTEMIS + CRLF
//Será transformado no tipo Data, e vamos incrementar a mensagem
TCSetField("QRY_SC5", "DTEMIS", "D")
cMessage += "Tipo: " + ValType(QRY_SC5->DTEMIS) + " | Conteúdo: " + dToC(QRY_SC5->DTEMIS) + CRLF
//Exibe a mensagem
ShowLog(cMessage)
QRY_SC5->(DbCloseArea())
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.