Guardar Archivos PDF en Base de Datos DB2

496 views
Skip to first unread message

Dante

unread,
Apr 16, 2011, 10:45:56 AM4/16/11
to Comunidad de Visual Foxpro en Español
Amigos,

Estoy tratando de guardar un pdf de 2mb como minimo en una base de
datos db2 con un tabla que tiene campo BLOB pero nada el error que
muestra el Fox dice cadena demasiado larga y solo hago esto.

xx=STRCONV(FILETOSTR("c:\borra\sekur.pdf"),13)
text to cSql noshow
insert into mytable (campoblob) values ('<<xx>>')
endtext
rc=sqlexec(nConecta,cSql)


existira otra forma de guardas imagenes o archivos en otros tipos de
base de datos.

Gracias

Programas ToP

unread,
Apr 16, 2011, 10:47:05 AM4/16/11
to publice...@googlegroups.com
En MySQL el campo para guardar ese tipo de archivos debe ser LongBlob.
No se si DB2 maneja ese tipo de campos.

Saludos cordiales

Manuel Tovar Ruiz
Barranquilla - COLOMBIA

Antes de imprimir este correo piensa en la contribuci�n que puedes hacer al medio ambiente.
Please consider your environmental responsibility and commitment before printing.


El 16/04/2011 09:45 a.m., Dante escribi�:

Programas ToP

unread,
Apr 16, 2011, 10:53:22 AM4/16/11
to publice...@googlegroups.com
M�s informaci�n.
En el caso de im�genes grandes hacemos esto sobre campos LongBlob:

LOCAL FOTO AS BLOB
FOTO = (0h) && Inicializamos la Variable
FOTO = FILETOSTR("\TOP\" + CUCU7 + "\FOTO\" +
ALLTRIM(THISFORM.I_NUMERO.Value) + ".JPG") && leemos el archivo y lo
dejamos en la variable FOTO
DELETE FILE "\TOP\" + CUCU7 + "\FOTO\" +
ALLTRIM(THISFORM.I_NUMERO.Value) + ".JPG" && borramos el archivo
*
*** SE ACTUALIZA EL REGISTRO QUE SE ACABA DE GRABAR CON LA FOTO, SE HACE
APARTE PORQUE LA TECNICA QUE SE UTILIZA ES DIFERENTE POR LO DEL TEXT
TO TEXTMERGE NOSHOW
*
IF ALLTRIM(FOTO) == ''
ELSE
LOCAL A
A = ALLTRIM(THISFORM.I_NUMERO.Value)
SQLEXEC (THISFORM.CONexion,"USE " + BDTOP1 )
TEXT TO CADENA TEXTMERGE NOSHOW
UPDATE top105 SET top105.CD54 = ?FOTO WHERE top105.CD2 = ?A
ENDTEXT
SQLEXEC (THISFORM.CONexion,CADENA)
ENDIF

Si algo no est� claro, no dudes en preguntar.

Saludos cordiales

Manuel Tovar Ruiz
Barranquilla - COLOMBIA

Antes de imprimir este correo piensa en la contribuci�n que puedes hacer al medio ambiente.
Please consider your environmental responsibility and commitment before printing.


El 16/04/2011 09:45 a.m., Dante escribi�:

Dante

unread,
Apr 16, 2011, 10:55:01 AM4/16/11
to Comunidad de Visual Foxpro en Español
Amigo,

El tipo de Campo ya lo tengo identificado el problema que el Fox no
puede enviar todo el algoritmo(binario) a ese campo, al menos que
exista otra forma de enviar el contenido que no sabria.

Dante

unread,
Apr 16, 2011, 11:18:55 AM4/16/11
to Comunidad de Visual Foxpro en Español
Gracias amigo por el ejemplo me sirvio bastante.

Programas ToP

unread,
Apr 16, 2011, 11:19:49 AM4/16/11
to publice...@googlegroups.com
Me alegro que asi sea.

Saludos cordiales

Manuel Tovar Ruiz
Barranquilla - COLOMBIA

Antes de imprimir este correo piensa en la contribuci�n que puedes hacer al medio ambiente.
Please consider your environmental responsibility and commitment before printing.


El 16/04/2011 10:18 a.m., Dante escribi�:


> Gracias amigo por el ejemplo me sirvio bastante.
>
>
>
> On 16 abr, 09:53, Programas ToP<programas...@gmail.com> wrote:
>> M s informaci n.
>> En el caso de im genes grandes hacemos esto sobre campos LongBlob:
>>
>> LOCAL FOTO AS BLOB

>> FOTO = (0h)&& Inicializamos la Variable


>> FOTO = FILETOSTR("\TOP\" + CUCU7 + "\FOTO\" +

>> ALLTRIM(THISFORM.I_NUMERO.Value) + ".JPG")&& leemos el archivo y lo

miltonvas

unread,
Apr 16, 2011, 3:58:14 PM4/16/11
to Comunidad de Visual Foxpro en Español
una pregunta
y porque no grabas el archivo en el servior en una carpeta x y solo
guardas la direccion donde esta el acrhvio en la base de datos

yo hago asi con las imagenes, pdf, catalogos
Reply all
Reply to author
Forward
0 new messages