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