× Linguagem de Programação ADVPL

Perguntas Consulta SQL campo Memo

Mais
12 anos 3 meses atrás #3786 por lalberto
Respondido por lalberto no tópico Re: Consulta SQL campo Memo
Tony que bom que resolveu, você poderia colocar sua solução para consultas futuras para o pessoal que tiver o mesmo problema ?

Obrigado.

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
12 anos 3 meses atrás - 12 anos 3 meses atrás #3848 por Tony.totvs
Respondido por Tony.totvs no tópico Re: Consulta SQL campo Memo
Resolvi o problema da seguinte maneira:

//Query sem o campo memo
_cQuery := "SELECT E2_PREFIXO, E2_PARCELA, E2_TIPO, E2_FORNECE, E2_LOJA, E2_EMISSAO, E2_CLIENTE, E2_LOJACLI, E2_NUM, E2_VALOR "
_cQuery += "FROM SE2010 "
_cQuery += "WHERE D_E_L_E_T_ <> '*' AND E2_FORNECE = '000335' AND E2_LOJA = '01' AND "
_cQuery += "E2_EMISSAO >= '20100101' AND E2_TIPO = 'PA' AND E2_SALDO > 0 "
_cQuery += "ORDER BY E2_EMISSAO"

TCQUERY _cQuery NEW ALIAS "TRAB"
Tcsetfield("TRAB","E2_EMISSAO","D")

While TRAB->( !Eof() )
_cMemo := ""
dbSelectArea("SE2")
//Busco a observacao no campo memo
SE2->(DbOrderNickName("SE21"))
If dbSeek(xFilial("SE2")+TRAB->E2_PREFIXO +TRAB->E2_NUM +TRAB->E2_PARCELA +TRAB->E2_TIPO +TRAB->E2_FORNECE +TRAB->E2_LOJA)
For _nX := 1 to MlCount(SE2->E2_OBSERVA,150)
_cMemo += Alltrim(MemoLine(SE2->E2_OBSERVA,150,_nX)) + " "
Next _nX
EndIf
//Imprimo a variavel normalmente no relatorio
oPrint:Say(_nLin,050, _cMemo, oFonte09)

TRAB->(dbSkip())
EndDo
Ultima edição: 12 anos 3 meses atrás por Tony.totvs.

Por favor Acessar ou Registrar para participar da conversa.

Mais
12 anos 1 mês atrás #6248 por andersonm
Respondido por andersonm no tópico Re: Consulta SQL campo Memo
Oie Tony apesar de voce ter encontrado uma soluçao via ADVPL a qual funciona com tabelas do Protheus, mas nao funcionaria com a SPED050, por exemplo que não está no dicionario de dados, segue um SELECT que consegue retornar o valor convertido.

SELECT
NFE_ID,
Trim( UTL_RAW.CAST_TO_VARCHAR2( DBMS_LOB.SUBSTR( spd050.xml_erp,2000 ) ) ) As XMLSIGA
FROM SPED050 SPD050
WHERE SPD050.D_E_L_E_T_ = ' ' AND SPD050.AMBIENTE = 1
AND SPD050.MODALIDADE = 1 AND SPD050.STATUS = 6
AND SPD050.DATE_NFE >= '20120928'

Abraços.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 3 meses atrás #15975 por lmatos2000
Respondido por lmatos2000 no tópico Re: Consulta SQL campo Memo
Anderson, usei o teu método, porém, duas coisas:
1. Quando tento jogar o conteúdo do campo para uma variável, ele "perde" todas as tag's e se parece com um texto indefinido;
2. Tentei imprimí-lo em um arquivo, e notei que ele ficou limitado, o XML não consegue ser todo carregado. Tentei aumentar o valor para cifras maiores do que 2000 e ele me retorna erro.
Podes me ajudar?

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.134 segundos
Joomla templates by a4joomla