<div dir="ltr">Thankyou Joost, i will change and test.<br><br><div class="gmail_quote">2008/9/4 Joost van der Sluis <span dir="ltr"><<a href="mailto:joost@cnoc.nl">joost@cnoc.nl</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Your solution only works if you know for sure that the field contains a<br>
jpeg-image. The lazarus-code assumes that the blob-fields start with the<br>
extension from the image, so that it can 'detect' what kind of image it<br>
is.<br>
That means offcourse, that you also have to use a TDBEdit to place the<br>
image into the database. Or else the leading extension won't be there.<br>
<br>
But I think I saw something else which is strange.<br>
<br>
btw: maybe you could send a patch (diff -u) next time, that's easier to<br>
read for people who are used to it. This is kind of a puzzle, althoug<br>
maneagable.<br>
<br>
Op woensdag 03-09-2008 om 14:56 uur [tijdzone -0300], schreef Osvaldo<br>
Filho:<br>
<div><div></div><div class="Wj3C7c">> The problem, perhaps, is in s.readstring.<br>
> =================================<br>
> //dbimage.inc line 135<br>
><br>
> procedure TDBImage.LoadPicture;<br>
> var //s : TMemory; // ( lazarus team)<br>
> s : TMemoryStream; // ( mine )<br>
> GraphExt : string;<br>
> gc : TGraphicClass;<br>
> AGraphic : TGraphic;<br>
><br>
> begin<br>
> if not FPictureLoaded then<br>
> begin<br>
> FUpdatingRecord := True;<br>
> if not assigned(FDatalink.Field) then<br>
> Picture.Assign(FDatalink.Field)<br>
> else<br>
> if FDatalink.field.IsBlob then<br>
> begin<br>
> if FDatalink.field is TBlobField then<br>
> begin<br>
> if FDatalink.Field.IsNull then<br>
> begin<br>
> Picture.Clear;<br>
> exit;<br>
> end;<br>
> //FDataLink.DataSet.CreateBlobStream(FDataLink.Field,bmRead); //<br>
> (lazarus team)<br>
<br>
</div></div>I guess this should be S:=FDatalink.Dataset.CreateBlobstream.....etc<br>
Maybe you also have to add the s.position := 0?<br>
<div class="Ih2E3d"><br>
> s := TMemoryStream.create; // ( mine )<br>
> (FDataLink.Field as TBlobField).SaveToStream(s); // ( mine )<br>
> s.Position:= 0; // ( mine )<br>
><br>
> if (S=Nil) or (s.Size = 0) then<br>
> begin<br>
> Picture.Clear;<br>
> exit;<br>
> end;<br>
> try<br>
> //GraphExt := s.ReadAnsiString; // (lazarus team)<br>
<br>
</div>Add 'gc := nil; AGraphic := nil;' here, as mentioned by someone else.<br>
<div><div></div><div class="Wj3C7c"><br>
> // gc := GetGraphicClassForFileExtension(GraphExt); //<br>
> (lazarus team)<br>
> // if assigned(gc) then // (lazarus team)<br>
> // begin // (lazarus team)<br>
><br>
> Picture.Jpeg.LoadFromStream(s); // ( mine )<br>
><br>
> //AGraphic. := gc.Create; // (lazarus team)<br>
> //AGraphic.LoadFromStream(s); // (lazarus team)<br>
> //Picture.Assign(AGraphic);<br>
> //end;<br>
> finally<br>
> //if assigned(AGraphic) then AGraphic.Free; // (lazarus<br>
> team)<br>
> s.Free;<br>
> end {try}<br>
><br>
> end<br>
> else<br>
> Picture.Assign(FDataLink.FField);<br>
> end;<br>
> FUpdatingRecord := False;<br>
> end;<br>
> end;<br>
> =================================<br>
><br>
> 2008/9/2 Osvaldo TCF - Listas <<a href="mailto:arquivostcf@gmail.com">arquivostcf@gmail.com</a>><br>
> With my image: a .jpg file<br>
> ---------------------------<br>
> in dbimage.inc, line 163:<br>
> try<br>
> GraphExt := s.ReadAnsiString;<br>
><br>
> gc := GetGraphicClassForFileExtension(GraphExt);<br>
> if assigned(gc) then<br>
> begin<br>
> AGraphic := gc.Create;<br>
> AGraphic.LoadFromStream(s);<br>
><br>
> Picture.Assign(AGraphic);<br>
> end;<br>
> -------------------------------------------<br>
><br>
> gc is not assigned, is it correct?<br>
> ==========================================================<br>
><br>
> The AV ocour here:<br>
> dbimage.inc line 175<br>
> ----------------------<br>
> Picture.Assign(AGraphic);<br>
> end;<br>
> finally<br>
> line 175>> if assigned(AGraphic) then AGraphic.Free;<br>
> s.Free;<br>
> end {try}<br>
> ----------------------<br>
><br>
> Em Ter, 2008-09-02 ās 10:34 +0200, Joost van der Sluis<br>
> escreveu:<br>
><br>
><br>
> > Op maandag 01-09-2008 om 12:05 uur [tijdzone -0300], schreef<br>
> Osvaldo<br>
> > Filho:<br>
> > > I can not use tdbimage, access violation!<br>
> > ><br>
> > > loadpicture error?<br>
> ><br>
> > Hmm... I had that working with a few hacks. Maybe that it<br>
> doesn't work<br>
> > anymore with the latest image changes in Lazarus-svn. So<br>
> which fpc and<br>
> > lazarus version are you using?<br>
> ><br>
> > Joost<br>
> ><br>
> ><br>
> > _______________________________________________<br>
> > Lazarus mailing list<br>
> > <a href="mailto:Lazarus@lazarus.freepascal.org">Lazarus@lazarus.freepascal.org</a><br>
> > <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus</a><br>
><br>
><br>
><br>
><br>
> _______________________________________________<br>
> Lazarus mailing list<br>
> <a href="mailto:Lazarus@lazarus.freepascal.org">Lazarus@lazarus.freepascal.org</a><br>
> <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus</a><br>
</div></div>--<br>
<div><div></div><div class="Wj3C7c"><br>
_______________________________________________<br>
Lazarus mailing list<br>
<a href="mailto:Lazarus@lazarus.freepascal.org">Lazarus@lazarus.freepascal.org</a><br>
<a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus</a><br>
</div></div></blockquote></div><br></div>