Ajude o site desativando o bloqueador de anúncio

ASSINE A NEWSLETTER

Cadastrando...
PIX uDesenv pix deposito

TCSetField [AS]

Autor: Eurai Criado: 01/01/2016 Atualizado: 25/04/2025

Descrição

TCSetField [AS] - Altera o tratamento, do tipo de dado ou precisão, para um campo/coluna retornada através de uma query..

 

Sintaxe

TCSetField( <cAlias>, <cCampo>, <cTipo>, <nTamanho>, <nDecimais> )

 

Parâmetros


Par Nome Tipo Descrição Default Obg Ref
01
cAlias
Caracter
Indica o alias da query
  X  
02 cCampo
Caracter
Indica o nome do campo/coluna de retorno
  X  
03 cTipo
Caracter
Indica o tipo de dado a ser retornado através deste campo/coluna, que pode ser: N=Numérico, D=Data ou L=Lógico
  X  
04 nTamanho
Numérico
Indica o tamanho do campo. Para campos do tipo 'C' caractere, especifica a quantidade máxima de caracteres a retornar. Para campos 'N' numéricos, especifica a quantidade total de dígitos, de 1 até 18. Para campos 'D' Data, deve ser utilizado tamanho 8 , e para tipo 'L' lógico, utilize tamanho 1.
     
05 nDecimais
Numérico
Indica a quantidade de decimais do campo. Usado apenas quando o tipo de dado de retorno é numérico. Para os demais tipos, especifique 0 (zero)
     

 

Retorno

Retorno Tipo Descrição

 

Exemplo

#INCLUDE "TOTVS.CH"


Static cCRLF	:= CRLF


User Function TCSetField()
Local cQuery	:= ""

If Select("Qry1") > 0//Verifica se ja existe alias criado
	Qry1->( dbCloseArea() )
Endif

cQuery := cCRLF + "	SELECT  "
cQuery += cCRLF + "		A1_MSALDO "
cQuery += cCRLF + "	FROM "
cQuery += cCRLF + RetSqlName("SA1") + " SA1 "
cQuery += cCRLF + "	WHERE "
cQuery += cCRLF + " 	SA1.D_E_L_E_T_ <> '*' "

DbUseArea(.T.,"TOPCONN",TcGenQry(,,ChangeQuery(cQuery)),"Qry1",.T.,.T.)

TCSetField( 'Qry1', 'A1_MSALDO', 'N', TamSX3('A1_MSALDO')[01], TamSX3('A1_MSALDO')[02] ) 

If Qry1->( !EOF() )
	
	MsgInfo( cValtoChar( Qry1->A1_MSALDO ), 'UniversoADVPL' )
	
Endif


Return( Nil )

Resultado
tcsetfield_-_resultado_01                                       

 

 

Informações adicionais

Ao realizar a abertura de uma query, através da função TCGenQry(), todos os campos numéricos são retornados com a precisão/tamanho 15,8 (máximo de 15 dígitos, sendo 8 decimais), e os demais campos são tratados e retornados como tipo "C" caractere.Desta forma, após abrir uma query sobre uma tabela de dados do ERP, podemos utilizar a função TCSetField(), para realizar as adequações de precisão de retorno para campos numéricos, conversão automática de tipos de retorno para os campos que não sejam explicitamente 'C' caracter ou 'M' memo.Por exemplo, um campo do tipo "D" date, em uma tabela de dados do ERP, é criado no banco de dados pelo DBAccess como sendo um campo CHAR ou VARCHAR, mas é tratado automativamente pelo DBAccess, para que as variávels AdvPL usadas para ler e gravar este campo sejam do Tipo "D" date.  Ao executar uma query nesta tabela e retonar o conteúdo desta coluna, ela será interpretada no AdvPL como uma variável do tipo "C" caractere, com tamanho 8.  Como sabemos que o conteúdo desta coluna é efetivamente uma data, gravada como string no formato AAAAMMDD, podemos utilizar a função TCSetField(), para que esta coluna seja tratada no alias de retorno com o tipo de dado 'D' date do AdvPL

 

 

 

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎  

 

 

 

 

 

 

 

Discussão (0)

Sem comentários ainda

Realize o LOGIN no site para poder comentar