Delphi - ayuda campo blob
tengo este codigo y no me guarda la imagen alguien me podria orientar porque (no me manda ningun error al guardar) var bs : TMemoryStream; begin qryimag.Close; qryimag.SQL.Clear; qryimag.SQL.Add('INSERT INTO imagenes (pantalla,id, imagen) values (14,:id, :imagen);'); qryimag.ParamByName('id').AsInteger := num; bs := TMemoryStream.Create; if imgfot.Picture <> nil Then if imgfot.Picture.Graphic <> nil Then imgfot.Picture.Graphic.SaveToStream(bs); qryimag.ParamByName('imagen').DataType := ftBlob; qryimag.ParamByName('imagen').LoadFromStream(bs,ftBlob); qryimag.ExecSQL; end; También te puede interesar...
Intenta cargar tu imagen con formato grafico qryimag.ParamByName('imagen').LoadFromStream(bs,ftGraphic);O tambien intenta cargarlo desde un archivo qryimag.ParamByName('blbLogo').LoadFromFile(txtRutaLogo.Text, ftGraphic);Yo lo tengo funcionando de la segunda forma. Como compruebas que no te está guardando la imagen? Lo ves por tu programa, o lo ves desde el administrador de la base de datos?
asi lo leo nuevamente (consulto) y manda un error... var
fldCampo : TField;
stStream : TStream;
pngImagen: Tdbimage;
begin
with qryimag do begin
qryimag.Close;
qryimag.SQL.Clear;
qryimag.SQL.Add('SELECT * FROM imagenes');
qryimag.Open;
try
fldCampo := FieldByName('imagen');
stStream := CreateBlobStream(fldCampo, bmRead);
pngImagen := Tdbimage.Create(imgfot);
pngImagen.Picture.Graphic.LoadFromStream(stStream);
imgfot.Picture.Assign(pngImagen);
pngImagen.Free;
except
end;
end;
end;en la base de datos como aparece ? solo dice [binary] es correcto?
Ya habia visto ese codigo, lo has modificado, cambiaste el tipo de la variable pmgImagen, utiliza el codigo original, tal vez te marcaba que te faltaba la unidad "pngimage", buscala en la web, y agregala a delphi, con eso el codigo original deberia funcionarte. Aunque en el codigo original se usan imagenes png, no se que uses tu
uso imagenes jpg y bmp
Para cargar una bmp yo uso lo siguiente fldCampo := FieldByName('logo');
stStream := CreateBlobStream(fldCampo, bmRead);
imgLogo.Picture.Bitmap.LoadFromStream(stStream);Para jpg no he probado
Hola E.T. muchas gracias por tu ayuda...ya me funciono cambie mi forma de leer la imagen y guaaoo funciono... mil gracias...
ahora mi duda es como lo leo una vez guardado es decir tengo un memdata, necesito leer el campo cmpleto para realizar algun cambio y sino para guardarlo nuevamente click en un DBGrib1 y que me lo mande a DBGrib2 pero en otro form urge estoy en examen y necesito unos ejercicion porfa |