<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>