Lizette,
No sé si pueda guardarse una imagen en un campo de tipo VarChar, en todo caso, no me parece el más indicado. Sería mejor que optaras por un campo BLOB (LongBlob, MediumBlob, TinyBlob, etc., dependiendo del tamaño de tus imágenes).
Te pongo aquí unas rutinas para guardar y mostrar imágens en una base MySQL usando un ADOTable:
Código Delphi
[-]
var
Stream: TStringStream;
begin
Stream := TStringStream.Create('');
try
Image1.Picture.Graphic.SaveToStream(Stream);
AdoTable1.Append;
AdoTable1.FieldByName('titulo').AsString := 'Mi primera foto';
AdoTable1.FieldByName('foto').AsString := Stream.DataString;
AdoTable1.Post;
finally
Stream.Free;
end;
end;
var
Stream: TStringStream;
Bitmap: TBitmap;
begin
Bitmap := nil;
Stream := nil;
try
Bitmap := TBitmap.Create;
Stream := TStringStream.Create(AdoTable1.FieldByName('foto').AsString);
Bitmap.LoadFromStream(Stream);
Image1.Picture.Assign(Bitmap);
finally
Bitmap.Free;
Stream.Free;
end;
end;
Las rutinas equivalentes usando un AdoQuery
Código Delphi
[-]
var
Stream: TStringStream;
begin
Stream := TStringStream.Create('');
try
Image1.Picture.Graphic.SaveToStream(Stream);
AdoQuery1.SQL.Text := 'insert into fotos (titulo, foto) values(:titulo, :foto)';
AdoQuery1.Parameters.ParamByName('titulo').Value := 'Mi primera foto';
AdoQuery1.Parameters.ParamByName('foto').Value := Stream.DataString;
AdoQuery1.ExecSQL;
finally
Stream.Free;
end;
end;
var
Stream: TStringStream;
Bitmap: TBitmap;
begin
Bitmap := nil;
Stream := nil;
try
Bitmap := TBitmap.Create;
AdoQuery1.SQL.Text := 'select titulo, foto from fotos where id = :id';
AdoQuery1.Parameters.ParamByName('id').Value := 8;
AdoQuery1.Open;
Stream := TStringStream.Create(AdoQuery1.FieldByName('foto').AsString);
Bitmap.LoadFromStream(Stream);
Image1.Picture.Assign(Bitmap);
finally
Bitmap.Free;
Stream.Free;
end;
end;
Veo más conveniente usar un AdoQuery, sobre todo para obtener la imagen desde la base de datos; porque usar un AdoTable implicaría, como dice
rgstuamigo, demasiado tráfico. Lo normal sería, mostrar una lista de registros y que el usuario escoja de cual quiere ver la imagen, y sólo entonces descargas la foto.
// Saludos