Concatenación de campos BLOB
Buenas, estoy trabajando con Firebird 3.0, Delphi XE5, FireDac.
Necesito concatenar dos campos BLOB, lo que hago es lo siguiente:
Pero cuando ejecuto, solamente me devuelve lo que está en a.titulo_aviso_admin, sin concatenación con la segunda parte. Aclaro que, lo que hay en los campos está en formato RTF, pero al menos debería mostrarme que los junta, o un error. Sin embargo, lo hace pero no concatena. Bueno, espero haber sido claro. Ojalá puedan ayudarme. Gracias. Santiago. |
Hola,
aunque no tengo ninguna certeza, supongo que los tiros van por la concatenación. Al concatenar, el segundo blob tiene la cadena de comienzo de fichero. Supongo que por eso se te china. Quítale un cacho de x caracteres al principio del segundo blob, concatena y prueba. Saludos |
Si los campos son blob binario (subtipo 0) no podrás, tendrás que extraerlos.
Pero si los campos son blob de texto (subtipo 1) sí que podrás concatenarlos normalmente con || |
Hola.
Tratándose de la versión 3 de Firebird no me aventuro a asegurarlo por que desconozco sus cambios, pero la versión 2.5 se comporta de igual modo. Leyendo en The Firebird Book de Helen Borrie encontré : Cita:
Intentando otro camino, no sería mayor problema hacerlo desde Delphi mediante Streams si no se tratase de contenido con formato RTF. Pero, lamentablemente ese formato posee cabecera, finalizacion, etc. y no se puede concatenar como si se tratase de texto o contenido binario. Finalmente, como te comenta Antonio usando SUB_TYPE 1 sí que Firebird lo puede hacer sin problemas, pero estarías trabajando con texto sin formato. Saludos :) |
Entiendo.
Tienen razón, no hay manera de concatenar si son RTF. Hay que extraerlos y hacerlo con Stream's. Ya estoy en eso. Pongo a consideración unos pequeños procedimientos que hacen eso. Espero sirva. Los hice en DelphiXE5.
Muchas gracias. |
Para que se entienda, esto los pone a todos en Texto Plano. Luego, podemos hacer con ellos lo que nos plazca.
Santiago. |
Hola.
Como comentaste que necesitabas concatenar dos campos Blob, te pongo una alternativa que prescinde del uso de TRichEdit para la conversión:
Ejemplo de uso:
Resultado: Saludos :) |
Uuuuuh. Me parece genial.
Lo voy a probar y veo como queda. Pero creo que es el camino. Gracias. |
La franja horaria es GMT +2. Ahora son las 16:36:51. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi