VoyForums

Login ] [ Contact Forum Admin ] [ Main index ] [ Post a new message ] [ Search | Check update time | Archives: 123456[7]8910 ]


[ Next Thread | Previous Thread | Next Message | Previous Message ]

Date Posted: 17:41:02 11/15/01 Thu
Author: Michel
Subject: Re: Invalid offset into the BLOB - AGAIN - Correction
In reply to: Ruy 's message, "Re: Invalid offset into the BLOB - AGAIN - Correction" on 07:00:28 11/15/01 Thu


Hi Ruy,

No I have experienced that. Is it possible that there is a blob size limit in your database?

Best regards,

Michel

>Michel,
>I've already done this change but i get the "invalid
>BLOB lenght" error in tquery.Post
>Any idea?
>
>
>>
>>Hi Ruy,
>>
>>I missed that on my last post:
>>
>>var Field : TBlobStream ;
>>
>>Field is TBlobStream not a TBlobField in your code. I
>>made the mistake in my original example. It should be,
>>
>>var Field : TBlobField;
>>
>>I'm sorry about that.
>>
>>Best regards,
>>
>>Michel
>>
>>>Hi Michel,
>>>
>>>Yes, it is a TBlobField type in Delphi. But in the
>>>SQLServer it is a image type.
>>>
>>>var Field : TBlobStream ;
>>> Graphic: TTiffGraphic;
>>>begin
>>> qryQuery.Edit;
>>> Stream := TMemoryStream.Create;
>>> Graphic:=TTiffGraphic.Create;
>>> Graphic:=ImageScrollBox.Graphic as TTiffGraphic;
>>> Graphic.SaveToStream(Stream);
>>> Stream.Seek(0, soFromBeginning);
>>> Field := qryQuery.FieldByName('Image') as
>>TBlobField;
>>> Field.LoadFromStream(Stream);
>>> qryQuery.Post;
>>> Graphic.Free;
>>> Stream.Free;
>>>end;
>>>When i try to run the example i get the COMPILATION
>>>error "Incompatible types TBloabStream and
>>>TBloabField" in the line Field :=
>>>qryQuery.FieldByName('Image') as TBlobField;
>>>
>>>>
>>>>Hi Ruy,
>>>>
>>>>The first thing I would check is the type of your
>>>>field.
>>>>
>>>>Look at FieldByName('Picture').ClassName in a
>>variable
>>>>with the debugger. Is it really a TBlobField?
>>>>
>>>>Best regards,
>>>>
>>>>Michel
>>>>
>>>>>Hi Michel,
>>>>>
>>>>>When i use this method i get the error
>"incompatible
>>>>>type TBlobStream and TBlobField" in
>>>>>Field := FieldByName('Picture') as TBlobField;
>>>>>
>>>>>>
>>>>>>Dear Petko,
>>>>>>
>>>>>>I would be very suprised it is the SaveToStream
>>>>method
>>>>>>that is problematic; I have used this method
>>>>thousands
>>>>>>of times for tiff files.
>>>>>>
>>>>>>It must be some interaction with TBlobStream.
>>>>>>
>>>>>>I would recommend using a TMemoryStream instead
>>>>>>instead of a TBlobStream:
>>>>>>
>>>>>>var
>>>>>>Stream : TMemoryStream;
>>>>>>Field : TBlobStream;
>>>>>>
>>>>>>...
>>>>>>
>>>>>>Stream := TMemoryStream.Create;
>>>>>>Graphic.SaveToStream(Stream);
>>>>>>Stream.Seek(0, soFromBeginning);
>>>>>>
>>>>>>Field := FieldByName('Picture') as TBlobField;
>>>>>>Field.LoadFromStream(Stream);
>>>>>>
>>>>>>Stream.Free;
>>>>>>
>>>>>>Best regards,
>>>>>>
>>>>>>Michel
>>>>>>
>>>>>>>I have placed a wrong example - the first - in
>the
>>>>>>>previous posted letter. That is the correct
>>variant
>>>>>of
>>>>>>>the procedure.
>>>>>>>
>>>>>>>procedure TMain.aLoadShemaExecute(Sender:
>>TObject);
>>>>>>>var
>>>>>>> Stream: TBlobStream;
>>>>>>> Graphic: TTiffGraphic;
>>>>>>>begin
>>>>>>> with OpenPictureDialog1 do
>>>>>>> if Execute then
>>>>>>> begin
>>>>>>> ImageShema.Picture.LoadFromFile(FileName); //
>>>>>Only
>>>>>>>tiff files (ImageShema: TImage)
>>>>>>>
>>>>>>> with DataModule1.tblTree do
>>>>>>> begin
>>>>>>> Edit;
>>>>>>>
>>>>>>>Stream:=TBlobStream.Create(FieldByName('Picture')
>>>as
>>>>>>>TBlobField, bmWrite);
>>>>>>> Graphic:=TTiffGraphic.Create;
>>>>>>> Graphic:=ImageShema.Picture.Graphic as
>>>>>>>TTiffGraphic;
>>>>>>> Graphic.SaveToStream(Stream); // Here raise
>>>>the
>>>>>>>error
>>>>>>> Post;
>>>>>>> Graphic.Free;
>>>>>>> Stream.Free;
>>>>>>> end;
>>>>>>> end;
>>>>>>>end;

[ Next Thread | Previous Thread | Next Message | Previous Message ]

[ Contact Forum Admin ]


Forum timezone: GMT-5
VF Version: 3.00b, ConfDB:
Before posting please read our privacy policy.
VoyForums(tm) is a Free Service from Voyager Info-Systems.
Copyright © 1998-2019 Voyager Info-Systems. All Rights Reserved.