[Lazarus-es] tquery insertar imagen en mysql

JoshyFun joshyfun en gmail.com
Jue Oct 1 18:29:21 CEST 2009


Hello Rafael,

Thursday, October 1, 2009, 5:40:23 PM, you wrote:

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

RB>   Dbf1.Active := true;
RB>   Dbf1.insert;
RB>   dbimage1.picture.LoadFromFile('/tmp/lazarus_about_logo.xpm');
RB>   dbf1.post;
RB> end;
RB> el problema lo sigo teniendo con mysql, por lo que ví los
RB> programadores php encodean el string en base 64 antes de guardar la
RB> imagen en la tabla y lo decodean antes de mostrar la imagen.
RB> pasará por allí la solución ?

Si el BDImage lo "rellenas" con un LoadFromFile no hay problema ya que
el formato del gráfico se saca de la extensión del fichero. Cámbiale
la extensión al fichero (no lo cambies de formato) y haz lo mismo,
verás que te salta un error por que la extensión no concuerda con los
datos contenidos. Cuando lees de un Blob no hay extensión que analizar
y por lo tanto creo que por defecto asume que es un BMP.

Lo de Base64 no suele ser necesario en los Blobs, aunque no se en los
de MySQL (no uso por su licencia). Eso si, el Blob tiene que ser
binario no texto.

-- 
Best regards,
 JoshyFun





More information about the Lazarus-es mailing list