[Lazarus-es] tquery insertar imagen en mysql

Rafael Bidegain r.bidegain en gmail.com
Jue Oct 1 17:40:23 CEST 2009


El día 30 de septiembre de 2009 09:34, JoshyFun <joshyfun en gmail.com> escribió:
> Hello Rafael,
>
> Wednesday, September 30, 2009, 12:57:54 PM, you wrote:
>
> RB> yo tengo en el formulario un datasource un dbgrid y un dbimage
> RB> vinculo el dbimage y el dbgrid al mismo datasource, pero la aplicacion
> RB> cancela cuando la propiedad autodisplay del dbgrid está en true.
>
> RB> http://bugs.freepascal.org/view.php?id=12030
>
> RB> el error se genera tanto en las versiones 0.9.24 como en la version 0.9.26
> RB> Existe ese error en la actual stable del svn ?
>
> El código sigue exactamente igual, así que si, es muy probable que el
> error siga ahí, de hecho creo que se cual es el motivo, y me parece
> increíble que nadie se haya dado cuenta :-? Simplemente en la linea:
>
> GraphExt := s.ReadAnsiString;
>
> Se leen todos los datos de la imagen en una variable string y en:
>
> gc := GetGraphicClassForFileExtension(GraphExt)
>
> Se usan como si fuera el nombre de un archivo (en vez de sus datos
> binarios) para obtener el formato gráfico :-(
>
> Intentaré corregirlo y propondré un parche.
Hice otra prueba, generé un archivo dbf (usando tdbf) en este caso
dbimage funciona muy bien.

procedure TForm1.Button1Click(Sender: TObject);
begin
  Dbf1.TableLevel := 7;
  Dbf1.TableName := 'image.dbf';
  With Dbf1.FieldDefs do begin
    Add('fimage', ftBlob, 65535, True);
  End;
  Dbf1.CreateTable;

  Dbf1.Active := true;
  Dbf1.insert;
  dbimage1.picture.LoadFromFile('/tmp/lazarus_about_logo.xpm');
  dbf1.post;
end;

el problema lo sigo teniendo con mysql, por lo que ví los
programadores php encodean el string en base 64 antes de guardar la
imagen en la tabla y lo decodean antes de mostrar la imagen.
pasará por allí la solución ?

Estoy buscando funciones encode64 y decode64 en mysql pero no las
encuentro, si consigo eso me ahorraria encodear el stream en
freepascal (cosa que encuentro engorrosa viendo el ejemplo
http://ejemplos.mis-algoritmos.com/index/view/257 )

saludos

-- 
Rafael Bidegain

Ya que los cuerdos no hablan, hablará el loco.
(The Fool, Padraic Pearse)




More information about the Lazarus-es mailing list