PDA

Ver la Versión Completa : Insertando texto en un campo BLOB


mRoman
10-02-2014, 06:42:22
Hola Amigos... USO Firebird 2.0 y Delphi6

Como puedo seguir agregando texto a un campo blob EN UN PROCEDIMIENTO ALMACENADO??

Estoy haciendo esto:
for select b.consec,
b.cantidad_surtida,
b.unidad_producto,
c.descripcion,
substr(c.cve_producto,8,11) as codificacion
from registro_e_s_detalle b,
producto c
where b.folio=:vfolio
and b.cve_producto=c.cve_producto
order by b.consec
into :vconsec,
:vcantidad,
:vunidad,
:vdescripcion,
:vcodificacion do
begin
if (vConsec=1) then
begin
vdetalle=String2Blob(lpad(:vcantidad,5,' ')||' '||
lpad(:vunidad,10,' ')||' '||
lpad(:vdescripcion,60,' ')||' '||
lpad(:vcodificacion,10,' ')||ascii_char(13));
end else
begin
vdetalle=String2Blob(:vdetalle)||
string2blob(lpad(:vcantidad,5,' ')||' '||
lpad(:vunidad,10,' ')||' '||
lpad(:vdescripcion,60,' ')||' '||
lpad(:vcodificacion,10,' ')||ascii_char(13));
end
end
insert into REPORTE_PASO_E_S(MOVIMIENTO_E_S,
FOLIO ,
FECHA_FOLIO ,
NOMBRE_RECIBE ,
RECIBI_DE ,
ID_DOCUMENTO ,
NOMBRE_AUTORIZO,
NOMBRE_SOLICITA,
NOMBRE_ENTREGADO,
ID_CONCEPTO_E_S,
OBSERVACIONES,
DETALLE,
DOCUMENTO )
values (:iformato,
:vfolio,
:vfecha_movto,
:vnombre_recibe,
:vrecibi_de,
:vid_documento,
:vnombre_autorizo,
:vnombre_solicita,
:vnombre_entregado,
:vid_concepto_es,
:vobservaciones,
:vdetalle,
:vdocumento);


Como puedo estar agregando (por ejemplo) el detalle de una factura en campo blob???....estoy tratando de hacer algo como esto:

contador=contador+1..

Firebird no marca error en esto:
vdetalle=String2Blob(:vdetalle)||
string2blob(lpad(:vcantidad,5,' ')||' '||
lpad(:vunidad,10,' ')||' '||
lpad(:vdescripcion,60,' ')||' '||
lpad(:vcodificacion,10,' ')||ascii_char(13));
Pero no hace nada....

Me pudieran ayudar....GRACIAS !

Casimiro Notevi
10-02-2014, 09:54:43
Primero de todo, ¿por qué guardas eso en un campo blob de esa manera?, no es práctico ni funcional.
Y segundo, el campo blob ¿es de tipo binario o texto?

mRoman
10-02-2014, 17:43:36
Es de tipo de TEXTO....
Y lo guardo asi por una razón de impresión......te platico rapidamente. Tengo que imprimir en una hoja tamaño carta 2 formatos que son de media carta. En la hoja carta deseo imprimir el original y la copia en una sola impresión......
Teniendo una tabla maestro y una tabla detalle (Factura y Factura_detalle por ej.) como imprimirias en una sola impresión en una hoja tamaño carta.... EL ORIGINAL Y LA COPIA ????... Yo no tengo idea si en quickreport la banda DETAIL la puedes colocar 2 veces dentro de un QuickReport...1 de ellas quede "arriba" en la primera mitad de la hoja y la otra "abajo" en la otra mitad de la hoja carta....

Sé que se puede resolver imprimiendo 2 veces y listo....pero se pretende AHORRAR IMPRESIONES PORQ LE CUESTA A LA IMPRESA CADA IMPRESION...entonces como el formato original es media carta....pretendo que en una sola impresion y en una sola hoja se impriman AMBOS FORMATO....EL ORIGINAL Y LA COPIA.

A mi se me ocurrio colocar la banda DETAIL...que abarque toda la hoja tamaños carta...sin ninguna otra banda mas....y despues crear una tabla con los encabezados mas 1 campo BLOB de tipo texto para en ese campo almacenar el DETALLE del formato.....

Es por esta razón que pregunto lo que amablemente tu leiste....O tu como le harias....conoces otra forma menos complicada !!???

Gracias por contestar Casimiro.

Casimiro Notevi
10-02-2014, 17:56:41
Para hacer lo que quieres es muy fácil con un generador de informes.
El quickreport no lo conozco, pero estoy convencido totalmente que debe ser facilísimo. Te recomiendo que mires o preguntes sobre eso. No te compliques la vida con campos blob y procedimientos almacenados para hacer algo que con quickreport debe ser tan simple como elegir una opción de la configuración.

mRoman
11-02-2014, 05:27:41
Ok...gracias Casimiro por contestar. Saludos.

Seguiré buscando.