none
Campo image com hexadecimal RRS feed

  • Pergunta

  • Ola! Atuo em uma empresa com sistema ERP Protheus da Microsiga.

    Tenho um campo onde no Protheus é tipo MEMO e no SQL Server é tipo IMAGEM.

    Ao fazer uma select simples me retorna o conteudo do campo em Hexadecimal.

    Existe função do MSSQL onde eu consiga converter esse Hexa? Que na verdade é um texto.


    Glauber C. Souza
    quinta-feira, 15 de julho de 2010 14:46

Respostas

  • Bom Dia,

    Se o campo é um texto o correto seria usar o tipo TEXT ou o VARCHAR(MAX) (2005 e superiores) e não o IMAGE. Entretanto, pode acontecer do IMAGE armazenar tanto imagens quanto textos e por isso foi escolhido. É possível utilizar o CAST para retornar os dados conforme o exemplo abaixo:

    CREATE TABLE #T (Memo IMAGE)
    INSERT INTO #T VALUES ('Algum Texto')
    SELECT Memo As ValorOriginal, CAST(CAST(Memo As VARBINARY(20)) As VARCHAR(20)) As ValorTextual
    FROM #T
    DROP TABLE #T
    

    Caso a conversão não funcione é possível que sua aplicação utilize algum HASH para a salvar o MEMO e nesse caso não será possível fazer a conversão pelo SQL Server.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Dois anos de blog, vários artigos, muitas visitas e valiosos feedbacks
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!1105.entry


    Classifique as respostas. O seu feedback é imprescindível
    quinta-feira, 15 de julho de 2010 14:58

Todas as Respostas

  • Bom Dia,

    Se o campo é um texto o correto seria usar o tipo TEXT ou o VARCHAR(MAX) (2005 e superiores) e não o IMAGE. Entretanto, pode acontecer do IMAGE armazenar tanto imagens quanto textos e por isso foi escolhido. É possível utilizar o CAST para retornar os dados conforme o exemplo abaixo:

    CREATE TABLE #T (Memo IMAGE)
    INSERT INTO #T VALUES ('Algum Texto')
    SELECT Memo As ValorOriginal, CAST(CAST(Memo As VARBINARY(20)) As VARCHAR(20)) As ValorTextual
    FROM #T
    DROP TABLE #T
    

    Caso a conversão não funcione é possível que sua aplicação utilize algum HASH para a salvar o MEMO e nesse caso não será possível fazer a conversão pelo SQL Server.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Dois anos de blog, vários artigos, muitas visitas e valiosos feedbacks
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!1105.entry


    Classifique as respostas. O seu feedback é imprescindível
    quinta-feira, 15 de julho de 2010 14:58
  • Ótimo, muito obrigado Gustavo!

    Era exatamento isso que precisava.


    Glauber C. Souza
    quinta-feira, 15 de julho de 2010 16:29