Pular para o conteúdo principal

Campos memo do Protheus com ASP e SQL Server

Se você trabalha com intranet e MS-SQL Server, acessando tabelas do Protheus via Web, já deve ter tido a necessidade de acessar campos tipo MEMO.


O que ocorre é que apesar de você criar o campo como tipo MEMO, o Protheus (Configurador) cria este no SQL Server como tipo IMAGE. Se você armazenar a frase "Teste observacao", no momento que você mostrar em sua página, vai aparecer um bocado de interrogações. Isto porque a frase fica gravada como: 0x5465737465206F62736572766163616F2E.


O conteúdo gravado no campo é binário. Para apresentá-lo, você pode usar a seguinte query (considerando que por exemplo uma tabela chamada SZT010 e um campo com o nome ZT_OBS):

SELECT CONVERT(VARCHAR(8000),CONVERT(BINARY(8000), ZT_OBS)) AS cZTOBS
FROM SZT010
WHERE ZT_DATA='20100106' AND ZT_FILIAL='02'

Ou seja, quando você mostrar cZTOBS, a frase será mostrada normalmente.


• Quem viu este post, também viu:

   Listar campos das tabelas

   Criando arquivos texto no Protheus





Comentários

  1. Excelente, estava precisando demais, já tinha desistido de usar campo MEMO com o Protheus.

    Obrigado :)

    ResponderExcluir
  2. Ok! Estamos sempre buscando soluções para estes casos!
    Obrigado por acessar o blog.

    ResponderExcluir
  3. Como faça para dar um update em campo memo?

    ResponderExcluir
    Respostas
    1. Olá, para atualizar ou incluir dados num campo memo, use a funcção MSMM.


      Veja um tutorial na TOTVS em:
      http://tdn.totvs.com/pages/releaseview.action?pageId=6814712

      Agradecemos o contato!

      Excluir
  4. Olá como eu faço para pegar uma data e horario atual e somar mais 5 utilizando o campo memo? Eu nunca usei essa função é a primeira vez que eu vejo falar e preciso usa-la

    ResponderExcluir
    Respostas
    1. Prezado, para somar dias numa data basta você somar 5 a sua variável. Exemplo: dMinhaData = dMinhaData + 5.

      Campos do tipo MEMO, são usados para arquivar textos grandes.

      Excluir

Postar um comentário

Postagens mais visitadas deste blog

Teclas de Atalhos TOTVS Developer Studio (Eclipse)

Seguem os atalhos para o TOTVS Developer Studio  (Eclipse)  : CTRL+H Localizar vários locais CTRL+F Localizar / substituir CTRL+K Localizar proximo resultado abaixo CTRL+SHIFT+K Localizar proximo resultado acima F11 Depurar F5 Percorre linha F6 Pula linha CTRL+F8 Trocar perspectiva CTRL+F7 Mudar visualização CTRL+F6 Navegar entre os fontes abertos CTRL+M Maximiza / miniminiza fonte CTRL+N Novo (wizard) CTRL+L Ir para linha CTRL+D Deleta toda linha CTRL+ALT+DOWN Duplica linha para baixo CTRL+ALT+UP Duplica linha para cima CTRL+SHIFT+L Apresenta lista de atalhos ALT+UP Move linha para cima ALT+DOWN Move linha para baixo CTRL+SHIFT+I Indenta o fonte CTRL+F9 Compilar CTRL+ESPAÇO A

Impressão com imagens no Protheus

Muitas vezes é necessário incluir uma imagem num relatório (uma logomarca por exemplo). Uma das maneiras de se fazer isto, é usar a classe TMSPRINTER() . O programa exemplo abaixo, ilustra bem como fazer. Este usa também a classe TFONT() (o tamanho do fonte leva o sinal de menos) : # include "PROTHEUS.CH" # include "RWMAKE.CH" user function fImprimeG() local oFont08 := tfont():New( 'Courier new' ,, -8, .t.),,; oFont09 := tfont():New( 'Courier new' ,, -9, .t.),,; oFont10 := tfont():New( 'Courier new' ,,-10, .t.) oPrint:=tmsprinter():new( "Impressao Grafica" ) oPrint:setportrait() oPrint:SetpaperSize(9) // PAPEL A4 if .not. oPrint:Setup() // MOSTRA JANELA DE CONFIGURAÇÃO DE IMPRESSAO msgalert( "IMPRESSAO CANCELADA." ) return nil endif // ESTE BLOCO PODE FICAR EM LOOP (DO WHILE, FOR..., ETC.) oPrint:StartPage() // oPrint:sayBitmap(linha, coluna, "C:\SUAPASTA\SUAIMAGEM.BMP", largura, al

Variáveis públicas do Protheus

Variáveis Públicas Disponíveis no Protheus: Nome Tipo Tamanho Descrição aEmpresas (A) Array contendo tantos elementos quanto forem as empresas e filiais cadastradas no sistema sendo que cada elemento se encontra no formato “EEFF” (Empresa + Filial) Ex.: “5501”. cAcesso (C, 128) Permissões de Acesso do Usuário. cEmpAnt (C, 2) Número da Empresa que está em uso no momento. Ex.: "55". cModulo (C, 3) Sigla do Módulo que está em uso no momento. Ex.: "EST" para o Módulo de Estoque. cNivel (N, 1) Nível de Acesso do Usuário podendo variar de 0 a 9 sendo que 9 indica um Administrador. cNumEmp (C, 4) Número da Empresa + Filial que está em uso no momento. Ex.: "9901". cSenha (C, 6) Senha do Usuário. cUserName (C, 15) Nome do Usuário sem brancos a direita. cUsuario (C, 533) Informações do usuário:de 001 a 006 – Senha do Usuário (6 dígitos)de 007 a 021 – Nome do Usuário (15 dígitos)de 022 a 533 – Permissões de Acesso (512 dígitos) dDataBa