Page 1 of 1

Necesito gaurdar un BMP nen un campo BLOB en una tabla Mysq

PostPosted: Sun Jul 13, 2008 5:27 am
by busmatic
Un saludo listeros.

Ando detras hace dias de como se guarda un archivo BMP dentro de un campo BLOB en una tbala Mysql.

Algun ejempl funciona el xhar agradeceria mucho.

Gracias a Montones desde ya.

Oscar Chacon
Busmatic de CR.

PostPosted: Sun Jul 13, 2008 6:13 pm
by Frafive
Hola

Yo lo estoy haciendo con eagle de la siguiente forma y funciona de maravilla , en el campo blob puede guardar cualquier cosa.



oTb:=TMsQuery():New(::oDataBase)
cImagen:=oTb:ReadFromFile(cFoto)

cInsert:= "INSERT INTO `fotos` (`cfoto`,`codigo`,`ctexto`) VALUES "
cInsert +="('"+cImagen+"','"+str(nCodigo)+"','"+alltrim(cTexto)+"');"

::oDataBase:Execute(cInsert)

No compañero funciona en , gracias de todas maneras

PostPosted: Mon Jul 14, 2008 1:16 am
by busmatic
Utilizo Tmysql y estube utilizando una rutinas de quintanilla que me ha ayudado.
el utiliza Eagle 1 y Tmysql y algo no funca.

Alguuine ma que haya logrado implementarlo.
gracias

Busmatic
Oscar Chacon.

PostPosted: Tue Jul 15, 2008 1:40 pm
by ricardog
Yo hago lo siguiente:

En la base de datos, el campo de la imagen lo genero como LONGTEXT, y para guardar y leer las imagenes hago lo siguiente:

ACTIVATE DIALOG oDlg CENTERED

if ! lContinuar; return(nil); endif

cPath=cGetFile("*.jpg;*.bmp",'Seleccione la imagen deseada')
cTemp = '.\bitmaps\temp001.tmp'

FMimeEnc(cPath,cTemp) //Esta es la función que nos ayuda agrabar la imagen como texto

if file(cTemp)
cMemo=memoread(cTemp)
cMemo=STRTRAN(cMemo,CRLF,'')

::oRsImagenes:AddNew()

TRY

::oRsImagenes:Fields("IdCliente"):Value := ::Id
::oRsImagenes:Fields("IdDocto"):Value := oSolicitud:IdDocto
::oRsImagenes:Fields("Descripcion"):Value := cNomSol
::oRsImagenes:Fields("Imagen"):Value := cMemo
::oRsImagenes:Update()
ferase(cTemp)
msginfo('Imagen salvada !', oApp:cEmpresa)
Catch oErr
Msginfo( 'La Imagen no puede ser agregada a la base de datos !',oApp:cEmpresa )
End
else
Msginfo( 'La Imagen no pudo ser guardada en la base de datos !',oApp:cEmpresa )
endif
osolicitud:End()
//::oRsImagenes:Requery()
Return Self

METHOD AbreImagen() CLASS TCliente //Para abrir una imagen GRABADA en la BD
local cMemo:='',cTemp:=''

SysRefresh()
CursorWait()

cMemo := ::oRsImagenes:Fields("imagen"):Value

if !empty(cMemo)

cTemp = '.\Bitmaps\temp002.tmp'

MEMOWRIT(cTemp,cMemo)

if file(cTemp)

cTemp2 = '.\Bitmaps\temp003.JPG'

FMimeDec(cTemp,cTemp2) //Esta es la funcion que nos permite leer la imagen en la base de datos

if file(cTemp2)

ShellExecute(GetActiveWindow(),"open",cTemp2)

else
MsgAlert("No ha sido posible leer la imagen de la base de datos" ,oApp:cEmpresa)
endif
else
MsgInfo("No existe la imagen del documento" ,oApp:cEmpresa)
endif
else
MsgInfo("No es posible abrir la imagen del Documento" ,oApp:cEmpresa)
EndIf
SysRefresh()
CursorArrow()


Return Self


Espero que te sea util.

Saludos
Ricardo E. Guardado Flores
Guadalajara, Jalisco Méx.