Função para converter campo memo para texto em advpl

Função muito útil para converter campo do tipo Memo do TOTVS Protheus para texto.

Utilizado também no Totvs Report.

 

#include "protheus.ch"
#include "topconn.ch"
USER FUNCTION MEMOtxt(_tabela,_campo,_chave,_retorno)
Local _cSQL
Local _resultado := ""
_cSQL := "SELECT ISNULL( CONVERT( VARCHAR(4096), CONVERT(VARBINARY(4096), "+_retorno+")),'') AS MEMO FROM "+_tabela+"010 WHERE "+_campo+" = '"+_chave+"' AND D_E_L_E_T_ = '' "
dbUseArea(.T.,"TOPCONN",TcGenQry(,,_cSQL),"TRD",.T.,.T.)
dbSelectArea("TRD")
TRD->(dbGoTop())
WHILE !TRD->(EOF())
_resultado := TRD->MEMO
TRD->(DBSKIP())
ENDDO
TRD->(dbCloseArea())
return _resultado