Olá,
Se a fonte de bytes for uma string, simplesmente bytes.toString deve resolver.
Avalados por :
Tenho uma tabela com 2 campos do tipo imagem.
Este tipo de dado imagem é utilizado para armazenar
emailid | attachmentname | anexo | mensagem
anexo e mensagem são ambos do tipo imagem
Na minha consulta... preciso especificar uma forma de recuperá-los... ou apenas como uma declaração select normal?
select emailid, attachmentname, attachment, mensagem from MailTable
Todas as informações devem ser retornadas para um bean
String emailid=""; getter/setter
String attachmentname=""; getter/setter
byte[] attachment=null; getter/setter
byte[] mensagem=null; getter/setter
bean.setemailid(emailid);
bean.setattachmentname(attachment);
Como vou definir o anexo e a mensagem com byte[];
Olá,
Se a fonte de bytes for uma string, simplesmente bytes.toString deve resolver.
O tipo de dado de imagem realmente não significa que contenha uma imagem, certo?
Se eu tiver uma mensagem longa... ainda posso armazená-la como imagem, correto?
Quero que esta mensagem seja exibida no webdynpro.........
ResultSet rs = stmt.executeQuery(squery);
try {
while (rs.next()) {
OutMailBean outMailBean = new OutMailBean();
outMailBean.setEmailId(rs.getString("EMAILID"));
outMailBean.setMessage(rs.getBytes("MESSAGE"));
}
rs.getBytes("MESSAGE"); irá retornar um caractere ilegível que mais tarde quero vincular à caixa de texto
[ .......................... .....mensagem aqui........................... ]
Visite meu blog
/people/anilkumar.vippagunta2/blog/2007/02/20/reading-and-writing-images-from-sqlserver-in-webdynpro
Saudações, Anilkumar
Olá yzme,
De acordo com Usando tipos de dados avançados, o tipo SQL Server imagem é mapeado para o tipo JDBC LONGVARBINARY, que por sua vez é mapeado para vários possíveis tipos em Java: byte[] (padrão), Blob, CharacterStream, BinaryStream, String. O link também contém alguns trechos de código. Note que o tamanho máximo do tipo de dado imagem é (2^31 - 1) bytes, o que equivale a 2 GB.
Suponho que você deseja "exibir" o anexo usando um elemento UI de Web Dynpro FileDownload. No NW04, a única maneira é vincular a propriedade data do elemento FileDownload a um atributo de contexto do tipo binary. Isso significa que você precisa carregar o anexo na memória e também pode usar rs.getBytes("ANEXO") em vez de rs.getBinaryStream("ANEXO") e converter manualmente o InputStream para um byte[]. No entanto, no NW04s, a forma recomendada é usar o atributo resource do elemento FileDownload e vinculá-lo a um atributo de contexto do tipo Resource. Então, você pode até carregar o arquivo de forma diferida, ou seja, recuperá-lo do banco de dados (por exemplo, usando um PreparedStatement "SELECT ANEXO FROM EMAIL WHERE ID_EMAIL = ?") quando o usuário clicar no link para download. Consulte Carregando InputStream no FileDownload sob demanda.
Em segundo lugar, presumo que você deseja exibir a mensagem usando um elemento UI de Web Dynpro TextView. Assim, o atributo texto do elemento TextView deve ser vinculado a um atributo de contexto do tipo string (e provavelmente você também deseja definir wrapping=true). O primeiro passo é obter a mensagem do banco de dados usando rs.getBytes("MENSAGEM") que resulta em um byte[]. O segundo passo é converter o byte[] em uma String. Como fazer isso depende totalmente do que exatamente é armazenado no banco de dados; não há uma maneira geral de converter um byte[] em uma String. Você precisa saber exatamente como a mensagem de e-mail é armazenada, presumivelmente como texto, no banco de dados como dados binários antes de poder extrair. Se você tiver uma mensagem byte[], pode tentar o seguinte: new String(mensagem, "UTF-8") ou outro conjunto de caracteres, por exemplo, "ISO-8859-1". Talvez a mensagem tenha sido codificada em Base64 antes de ser armazenada no banco de dados, nesse caso, você precisa decodificá-la primeiro em Base64 (se a string terminar com alguns caracteres "=", este pode ser o caso). Existem inúmeras maneiras de converter caracteres em bytes e vice-versa... Claro, se você é o proprietário do aplicativo que armazena a mensagem no banco de dados, é fácil porque você sabe.
Atenciosamente,
Sigiswald
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute