Hola,
Si la fuente de bytes es una cadena, simplemente bytes.toString debería hacer el truco.
Avalados por :
Tengo una tabla con 2 campos de tipo imagen.
Este tipo de dato imagen se utiliza para almacenar
emailid | attachmentname | adjunto | mensaje
adjunto y mensaje son ambos de tipo imagen
En mi consulta... ¿necesito especificar una forma de recuperarlos... o solo como una declaración select normal?
select emailid, attachmentname, attachment, mensaje from MailTable
Toda la información debe devolverse a un bean
String emailid=""; getter/setter
String attachmentname=""; getter/setter
byte[] attachment=null; getter/setter
byte[] mensaje=null; getter/setter
bean.setemailid(emailid);
bean.setattachmentname(attachment);
¿Cómo voy a establecer el adjunto y el mensaje con byte[];
Hola,
Si la fuente de bytes es una cadena, simplemente bytes.toString debería hacer el truco.
El tipo de dato de imagen realmente no significa que contenga una imagen, ¿verdad?
Si tengo un mensaje largo... ¿todavía puedo almacenarlo como imagen, ¿verdad?
Quiero que este mensaje se muestre en el 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"); devolverá un carácter ilegible que más tarde quiero vincularlo al cuadro de texto
[ .......................... .....mensaje aquí........................... ]
Visita mi blog
/people/anilkumar.vippagunta2/blog/2007/02/20/reading-and-writing-images-from-sqlserver-in-webdynpro
Saludos, Anilkumar
Hola yzme,
Según Usando tipos de datos avanzados, el tipo de SQL Server imagen se mapea al tipo JDBC LONGVARBINARY, que a su vez se mapea a varios tipos posibles de Java: byte[] (predeterminado), Blob, CharacterStream, BinaryStream, String. El enlace también contiene algunos fragmentos de código. Ten en cuenta que el tamaño máximo del tipo de dato imagen es (2^31 - 1) bytes, que son 2 GB.
Supongo que quieres "mostrar" el adjunto utilizando un elemento UI de Web Dynpro FileDownload. En NW04, la única manera es vincular la propiedad data del elemento FileDownload a un atributo de contexto de tipo binary. Esto significa que necesitas cargar el adjunto en memoria y también puedes usar rs.getBytes("ADJUNTO") en lugar de rs.getBinaryStream("ADJUNTO") y convertir manualmente el InputStream a un byte[]. Sin embargo, en NW04s, la forma recomendada es utilizar el atributo resource del elemento FileDownload y vincularlo a un atributo de contexto de tipo Resource. Luego incluso puedes cargar el archivo de forma diferida, es decir, recuperarlo de la base de datos (por ejemplo, usando un PreparedStatement "SELECT ADJUNTO FROM CORREO WHERE ID_CORREO = ?") cuando el usuario haga clic en el enlace de descarga. Consulta Carga del InputStream en FileDownload a petición.
En segundo lugar, asumo que quieres mostrar el mensaje utilizando un elemento UI de Web Dynpro TextView. Entonces, el atributo texto del elemento TextView debe estar vinculado a un atributo de contexto de tipo string (y probablemente también quieras establecer wrapping=true). Lo primero que debes hacer es obtener el mensaje de la base de datos usando rs.getBytes("MENSAJE") que te da un byte[]. Lo segundo que debes hacer es convertir el byte[] a un String. Cómo hacerlo depende completamente de lo que exactamente se almacena en la base de datos; no hay una forma general de convertir un byte[] a un String. Necesitas saber absolutamente cómo se almacena el mensaje de correo electrónico, presumiblemente texto, en la base de datos como datos binarios antes de poder extraerlo. En caso de que tengas un mensaje byte[], podrías intentar lo siguiente: new String(mensaje, "UTF-8") u otro conjunto de caracteres, por ejemplo, "ISO-8859-1". Tal vez el mensaje fue codificado en Base64 antes de almacenarlo en la base de datos, en cuyo caso necesitas decodificarlo primero en Base64 (si la cadena termina con algunos caracteres "=", este podría ser el caso). Hay un sinfín de formas de convertir caracteres en bytes y viceversa... Por supuesto, si eres el propietario de la aplicación que almacena el mensaje en la base de datos, es fácil porque lo sabes.
Saludos cordiales,
Sigiswald
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute