In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Salvar imagens do banco (mysql) para o disco

Foro de Xailer profesional en español
Responder
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Salvar imagens do banco (mysql) para o disco

Mensaje por Sommus »

Prezados desenvolvedores de Xailer,
Estou executando o código abaixo para salvar uma imagem de uma tabela do banco de dados mysql para o disco e estou obtendo um erro GPF:

cLogo:='logo.tmp'
oImagem:=TPicture():LoadFromStream(::oSQLQuery:logo)
oImagem:Save(cLogo)

O erro ocorrido:
GPF (Code = c0000005)
Access violation
TPICTURE:SAVE(0)
...
Qual é o problema? Como resolver?
Obrigado pela atenção,
Reginaldo
Avatar de Usuario
gerencia
Mensajes: 282
Registrado: Sab Jun 20, 2009 6:01 pm

Salvar imagens do banco (mysql) para o disco

Mensaje por gerencia »

Yo lo hagoasi.
//---------------------------------------------------------- --------------------
METHOD CargarImagen( oSender ) CLASS TEditEmple
Local oImgFoto
Local aDir
Local lok:=.T.
WITH OBJECT ::oFileOpenImgDlg
IF :Run()
aDir:=Directory(:cFullFilename())
If !Empty(aDir)
If aDir[1,2] > 120000
MsgStop("La imagen que intenta cargar supera los
120K "+CRLF+;
"se sugire que no cargue imagenes de tamaño
mayor","Alerta")
lok:=.F.
Endif
Endif
If lOK
::oFoto:oPicture := TPicture():LoadFromFile(:cFullFilename())
::oParent:oSqlFoto:Foto := MemoRead(:cFullFilename())
Endif
ENDIF
END
RETURN Nil
José David Angulo
*José**David Angulo Urzola.*
*Auditoria y Sistemas Ltda.*
jose.angulo@auditoriaysistemas.com <mailto:Gerencia@microexpressltda.com>
*Tel. (57) 5-6643022 – 6644555*
*Cartagena – Colombia*
El 2013-06-19 01:32 p.m., Sommus - Reginaldo escribió:
> Prezados desenvolvedores de Xailer,
>
> Estou executando o código abaixo para salvar uma imagem de
> uma tabela do banco de dados mysql para o disco e estou
> obtendo um erro GPF:
>
>
> cLogo:='logo.tmp'
> oImagem:=TPicture():LoadFromStream(::oSQLQuery:logo)
> oImagem:Save(cLogo)
>
>
> O erro ocorrido:
>
> GPF (Code = c0000005)
> Access violation
>
> TPICTURE:SAVE(0)
> ..
>
> Qual é o problema? Como resolver?
>
> Obrigado pela atenção,
>
> Reginaldo
--
Jose David Angulo Urzola
Auditoria y Sistemas Ltda.
Cartagena-Colombia
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Salvar imagens do banco (mysql) para o disco

Mensaje por Sommus »

Caro José David,
Obrigado por responder...
Mas, na verdade o que preciso é justamente o contrario, preciso salvar no disco a imagem que esta no banco de dados...
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9254
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Salvar imagens do banco (mysql) para o disco

Mensaje por ignacio »

Sommus - Reginaldo escribió el mié, 19 junio 2013 20:32Prezados desenvolvedores de Xailer,
Estou executando o código abaixo para salvar uma imagem de uma tabela do banco de dados mysql para o disco e estou obtendo um erro GPF:

cLogo:='logo.tmp'
oImagem:=TPicture():LoadFromStream(::oSQLQuery:logo)
oImagem:Save(cLogo)

O erro ocorrido:
GPF (Code = c0000005)
Access violation
TPICTURE:SAVE(0)
...
Qual é o problema? Como resolver?
Obrigado pela atenção,
Reginaldo
Confirm you can see the bitmap on a TImage control first to see if the database informations is corrupted.
Regards,
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Salvar imagens do banco (mysql) para o disco

Mensaje por Sommus »

Prezado Ignacio,
Não há nada corrompido, consigo visualizar a imagem no banco de dados
normalmente, inclusive, estou exibindo ela num componente TImage...
"Ignacio Ortiz de Zúñiga" escreveu na notí­cia da
mensagem:51c2f7f4$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Sommus - Reginaldo escribió el mié, 19 junio 2013
20:32
> Prezados desenvolvedores de Xailer,
>
> Estou executando o código abaixo para salvar uma imagem
> de uma tabela do banco de dados mysql para o disco e estou
> obtendo um erro GPF:
>
>
> cLogo:='logo.tmp'
> oImagem:=TPicture():LoadFromStream(::oSQLQuery:logo)
> oImagem:Save(cLogo)
>
>
> O erro ocorrido:
>
> GPF (Code = c0000005)
> Access violation
>
> TPICTURE:SAVE(0)
> ...
>
> Qual é o problema? Como resolver?
>
> Obrigado pela atenção,
>
> Reginaldo
Confirm you can see the bitmap on a TImage control first to
see if the database informations is corrupted.
Regards,
--
Ignacio Ortiz de Zúñiga
[Equipo de Xailer/Xailer team]
http://www.xailer.com
http://www.xailer.info
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9254
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Salvar imagens do banco (mysql) para o disco

Mensaje por ignacio »

Ok,
Please try the following:
1) When saving the file indicate the same format of the original file with its second parameter.
2) Send us the problematic image to do some tests.
Regards,
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Salvar imagens do banco (mysql) para o disco

Mensaje por Sommus »

Prezados,
Problema resolvido. O problema é que essa tabela recebia uma copia dos dados de uma outra tabela. Essa cópia de dados de uma tabela para outra estava copiando de forma errada o campo do tipo BLOB... Resolvi, convertendo o dado do campo BLOB em HEXADECIMAL e depois gravando no campo BLOB da outra tabela como HEXADECIMAL...
Responder