mjjj
16-02-2009, 23:53:16
Se que esta pregunta la han hecho y respondido muchas veces, pero con todo la información que he encontrado no he podido solucionar mi problema.
Necesito guardar y mostrar imagenes en una base de dato, utilizo Firebird 2.1 y Delphi 2006.
Expongo los codigos que utilizo para guardar y mostrar la imagen.
Guardar
var
MS : TMemoryStream;
begin
MS := TMemoryStream.Create;
if (OpenDialog1.Execute) then
begin
MS.LoadFromFile(OpenDialog1.FileName);
with ibsql1 do
begin
ibtransaction1.active:=true;
SQL.Clear;
SQL.Add('update empresa set foto=:foto');
sql.add('where nombre ='+quotedstr(label1.caption));
ParamByName('Foto').LoadFromStream(ms);
execquery;
ibtransaction1.commit;
MS.Free;
end;
end;
Mostrar
var
MemoryStream : TMemoryStream ;
ImageBuffer : tbitmap ;
begin
ibquery3.Close;
ibquery3.sql.clear;
ibquery3.sql.add('select * from empresa where nombre ='+quotedstr(label1.caption));
ibquery3.open;
MemoryStream := TMemoryStream.Create;
TBlobField(ibquery3.FieldByName('foto')).SaveToStream(MemoryStream);
ImageBuffer := TJpegImage.Create;
ImageBuffer.LoadFromStream(MemoryStream);
image1.Picture.Assign(ImageBuffer);
ImageBuffer.free;
ImageBuffer.Free;
end;
Me arroja un error #42, ni idea de lo que puede estar ocurriendo.
Espero me puedan ayudar.... gracias
Necesito guardar y mostrar imagenes en una base de dato, utilizo Firebird 2.1 y Delphi 2006.
Expongo los codigos que utilizo para guardar y mostrar la imagen.
Guardar
var
MS : TMemoryStream;
begin
MS := TMemoryStream.Create;
if (OpenDialog1.Execute) then
begin
MS.LoadFromFile(OpenDialog1.FileName);
with ibsql1 do
begin
ibtransaction1.active:=true;
SQL.Clear;
SQL.Add('update empresa set foto=:foto');
sql.add('where nombre ='+quotedstr(label1.caption));
ParamByName('Foto').LoadFromStream(ms);
execquery;
ibtransaction1.commit;
MS.Free;
end;
end;
Mostrar
var
MemoryStream : TMemoryStream ;
ImageBuffer : tbitmap ;
begin
ibquery3.Close;
ibquery3.sql.clear;
ibquery3.sql.add('select * from empresa where nombre ='+quotedstr(label1.caption));
ibquery3.open;
MemoryStream := TMemoryStream.Create;
TBlobField(ibquery3.FieldByName('foto')).SaveToStream(MemoryStream);
ImageBuffer := TJpegImage.Create;
ImageBuffer.LoadFromStream(MemoryStream);
image1.Picture.Assign(ImageBuffer);
ImageBuffer.free;
ImageBuffer.Free;
end;
Me arroja un error #42, ni idea de lo que puede estar ocurriendo.
Espero me puedan ayudar.... gracias