[DUG] Images and MS SQL Server
Todd Martin
todd.martin.nz at gmail.com
Tue Aug 19 13:24:30 NZST 2008
I don't see why not. You probably just need to add 'jpeg' to your "uses"
clause and
TPicture.RegisterFileFormat('jpg', 'JPeg Image', TBitmap);
TPicture.RegisterFileFormat('jpeg', 'JPeg Image', TBitmap);
in the "initialization" section.
You should be able to load a jpeg from stream after that.
Todd.
> Maybe you need to work with BMP - there seem to be behind the scenes
> limitations with what works with JPGs
>
> I wrote a program to resize JPEGS, I found there were some tricks about what
> you could do, it seems in general its less puzzling in Delphi to work with
> BMP but you can easily convert back and forth
>
> You may want to experiment with some code like
> ImageIn: TImage;
> ImageOut: TImage;
>
> JPGIn : TJPegImage;
> BMPIn : TBitMap;
> JPGOut : TJPegImage;
> BMPOut : TBitMap;
>
> //Jpeg in to BMP in order to display or resize
> JPGIn := TJPegImage.Create;
> JPGIn.LoadFromFile(FileIn);
> BMPIn := TBitMap.Create;
> BMPIn.Assign(JPGIn);
> ImageIn.Picture.Assign(BMPIn);
>
>
>
> //BMPto JPG
> JPGOut := TJPegImage.Create;
> BMPOut := TBitMap.Create;
> BMPOut.Assign(JPGOut);
> ImageOut.Picture.Assign(BMPOut);
>
> JPGOut.Assign(BMPOut);
>
>
> As an aside I found you can resize the BMP with code like
> JPGOut:=JPGIn;
> BMPOut.Width:=WidthOut;
> BMPOut.Height:=HeightOut;
> BMPOut.Canvas.Stretchdraw(Rect(0,0,WidthOut,HeightOut),JPGOut);
>
> John
>
>
> -----Original Message-----
> From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz] On
> Behalf Of Neven MacEwan
> Sent: Tuesday, 19 August 2008 11:28 a.m.
> To: NZ Borland Developers Group - Delphi List
> Subject: Re: [DUG] Images and MS SQL Server
>
>
> Dave
>
>> It actually appears to be something to do with the image being a jpeg.
>> If I use a bitmap image, the TDBImage shows the bitmap correctly.
>>
> Yes i don't think TDBImage supports JPGs by default
>
> Have you tried datamod.
>
> var
> ImgField: TBlobField;
> ADOQ.SQL.Text := 'Select * from StockCats where ID ='+InttoStr(ID) ;
> datamod.ADOQ.Open ; try if not datamod.ADOQ.EOF then
> begin
> ID := datamod.ADOQ.FieldByName('ID').AsInteger ;
> edtCategory.Text :=
> Trim(datamod.ADOQ.FieldByName('Category').AsString) ;
> moDescr.Text :=
> Trim(datamod.ADOQ.FieldByName('Description').AsString) ;
> ms := TMemoryStream.Create ;
> try
> ImgField := datamod.ADOQ.FieldByName('Image');
> ImgField.SaveToStream(ms);
> Image.Picture.Bitmap.LoadFromStream(ms);
> finally
> st.Free ;
> end ;
> finally
> ms.Free ;
> end ;
> end ;
> finally
> datamod.ADOQ.Close ;
> end ;
>
>
>
>
>> -----Original Message-----
>> From: delphi-bounces at delphi.org.nz
>> [mailto:delphi-bounces at delphi.org.nz]
>> On Behalf Of Neven MacEwan
>> Sent: Tuesday, 19 August 2008 10:18 a.m.
>> To: NZ Borland Developers Group - Delphi List
>> Subject: Re: [DUG] Images and MS SQL Server
>>
>> Dave
>>
>> Im getting a little confused, have you or have you not managed to
>> write
>> an image to your DB?
>> You could confirm this with a simple sql query or crystal reports
>>
>> If you have you should be able to open the table in the ide and bind a
>> TDBImage to it
>>
>> Neven
>>
>>
>>> That's exactly what I am doing to save the image, how do I retrieve
>>>
>>>
>> it?
>>
>>
>>> Every method I have tried comes up blank.
>>>
>>> -----Original Message-----
>>> From: delphi-bounces at delphi.org.nz
>>>
>>>
>> [mailto:delphi-bounces at delphi.org.nz]
>>
>>
>>> On Behalf Of Leigh Wanstead
>>> Sent: Monday, 18 August 2008 4:32 p.m.
>>> To: NZ Borland Developers Group - Delphi List
>>> Subject: Re: [DUG] Images and MS SQL Server
>>>
>>> IIRC, I will do this way.
>>>
>>> varStream just a memory stream, you might want to instante with a
>>> TFileStream
>>>
>>> ADOQueryTest.sql.text := 'UPDATE table SET FileCol = :FileColOBJECTS
>>>
>
>
>>> WHERE ID = :ID';
>>> ...
>>>
>>> ADOQueryTest.Parameters.ParamByName('FileColOBJECTS').LoadFromStream(
>>> v
>>> arStream, ftBlob);
>>> ADOQueryTest.ExecSQL;
>>>
>>> Have a nice day
>>>
>>> Regards
>>> Leigh
>>> www.smootharm.com
>>>
>>>
>>> -----Original Message-----
>>> From: delphi-bounces at delphi.org.nz
>>> [mailto:delphi-bounces at delphi.org.nz]On Behalf Of Dave O'Brien
>>> Sent: Monday, 18 August 2008 4:17 p.m.
>>> To: NZ Borland Developers Group - Delphi List
>>> Subject: Re: [DUG] Images and MS SQL Server
>>>
>>>
>>> So did I, but I can't tell if it's not working because it's not
>>> saving or loading...
>>>
>>> The problem is FieldByName doesn't have any saveto... methods.
>>>
>>> I have tried to cast it as a Tblobfield
>>> (TBlobField(adoq.fieldbyname('Image')).Saveto...), but either this
>>> doesn't work or my save code doesn't work.
>>>
>>> -----Original Message-----
>>> From: delphi-bounces at delphi.org.nz
>>>
>>>
>> [mailto:delphi-bounces at delphi.org.nz]
>>
>>
>>> On Behalf Of Neven MacEwan
>>> Sent: Monday, 18 August 2008 4:06 p.m.
>>> To: NZ Borland Developers Group - Delphi List
>>> Subject: Re: [DUG] Images and MS SQL Server
>>>
>>> Dave
>>>
>>> I thought you had code to save it?
>>>
>>> To tretrieve it (rough I don't have )
>>>
>>> ADOQuery.SQL.Add('SELECT FileCol FROM Table WHERE ID = 1');
>>> ADOQuery.Open; ADOQuery.FieldByName('FileCol ').SaveToFile(FileName);
>>>
>>> FieldByName('FileCol ') should be a TBlobField
>>>
>>> Neven
>>>
>>>
>>>
>>>
>>>
>>>
>>>> I've struck a complete blank on this.
>>>> Can anyone show me some code to save and load images from SQL Server
>>>> using TADOQuery? The methods I've come up with don't appear to work
>>>> at all...
>>>>
>>>> -----Original Message-----
>>>> From: delphi-bounces at delphi.org.nz
>>>>
>>>>
>>>>
>>> [mailto:delphi-bounces at delphi.org.nz]
>>>
>>>
>>>
>>>> On Behalf Of Neven MacEwan
>>>> Sent: Friday, 15 August 2008 4:02 p.m.
>>>> To: NZ Borland Developers Group - Delphi List
>>>> Subject: Re: [DUG] Images and MS SQL Server
>>>>
>>>> Dave
>>>>
>>>> Hasn't Tblobfield got the same streaming functions IIRC
>>>>
>>>>
>>>>
>>>>
>>>>> I have worked out how to save an image into an Image field, but I'm
>>>>> having brain fade on how to retrieve the image... Using TADOQuery,
>>>>>
>>>>>
>>>>>
>>>>>
>>>> D2005.
>>>>
>>>>
>>>>
>>>>
>>>>> Save:
>>>>>
>>>>> ...
>>>>>
>>>>> datamod.ADOU.SQL.Add(':Image)') ;
>>>>>
>>>>> ms := TMemoryStream.Create ;
>>>>>
>>>>> try
>>>>>
>>>>> Image.Picture.Bitmap.SaveToStream(ms);
>>>>>
>>>>> ms.seek(0,0) ;
>>>>>
>>>>> datamod.ADOU.Parameters.ParamByName('Image').LoadFromStream(ms,
>>>>> ftGraphic);
>>>>>
>>>>> finally
>>>>>
>>>>> ms.Free ;
>>>>>
>>>>> end ;
>>>>>
>>>>> datamod.ADOU.ExecSQL ;
>>>>>
>>>>> Anyone (I suppose everyone has) got a way to get the image back?
>>>>>
>>>>> Cheers,
>>>>>
>>>>> Dave.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>> ----------------------------------------------------------------------
>> --
>>
>>
>>>
>>>
>>>
>>>>> _______________________________________________
>>>>> NZ Borland Developers Group - Delphi mailing list
>>>>> Post: delphi at delphi.org.nz
>>>>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>>>>> Unsubscribe: send an email to delphi-request at delphi.org.nz with
>>>>>
>>>>>
>>>>>
>>>>>
>>>> Subject: unsubscribe
>>>>
>>>> _______________________________________________
>>>> NZ Borland Developers Group - Delphi mailing list
>>>> Post: delphi at delphi.org.nz
>>>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>>>> Unsubscribe: send an email to delphi-request at delphi.org.nz with
>>>>
>>>>
>>>>
>>> Subject:
>>>
>>>
>>>
>>>> unsubscribe
>>>>
>>>> No virus found in this incoming message.
>>>> Checked by AVG - http://www.avg.com
>>>> Version: 8.0.138 / Virus Database: 270.6.4/1616 - Release Date:
>>>> 16/08/2008 5:12 p.m.
>>>>
>>>> _______________________________________________
>>>> NZ Borland Developers Group - Delphi mailing list
>>>> Post: delphi at delphi.org.nz
>>>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>>>> Unsubscribe: send an email to delphi-request at delphi.org.nz with
>>>>
>>>>
>>>>
>>> Subject: unsubscribe
>>>
>>>
>>>
>>>>
>>>>
>>>>
>>> _______________________________________________
>>> NZ Borland Developers Group - Delphi mailing list
>>> Post: delphi at delphi.org.nz
>>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>>> Unsubscribe: send an email to delphi-request at delphi.org.nz with
>>>
>>>
>> Subject:
>>
>>
>>> unsubscribe
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG - http://www.avg.com
>>> Version: 8.0.138 / Virus Database: 270.6.4/1617 - Release Date:
>>> 17/08/2008 12:58 p.m.
>>>
>>> _______________________________________________
>>> NZ Borland Developers Group - Delphi mailing list
>>> Post: delphi at delphi.org.nz
>>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>>> Unsubscribe: send an email to delphi-request at delphi.org.nz with
>>>
>>>
>> Subject:
>>
>>
>>> unsubscribe
>>>
>>>
>>> _______________________________________________
>>> NZ Borland Developers Group - Delphi mailing list
>>> Post: delphi at delphi.org.nz
>>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>>> Unsubscribe: send an email to delphi-request at delphi.org.nz with
>>>
>>>
>> Subject:
>>
>>
>>> unsubscribe
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG - http://www.avg.com
>>> Version: 8.0.138 / Virus Database: 270.6.4/1617 - Release Date:
>>> 17/08/2008 12:58 p.m.
>>>
>>> _______________________________________________
>>> NZ Borland Developers Group - Delphi mailing list
>>> Post: delphi at delphi.org.nz
>>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>>> Unsubscribe: send an email to delphi-request at delphi.org.nz with
>>>
>>>
>> Subject: unsubscribe
>>
>>
>>>
>>>
>>>
>> _______________________________________________
>> NZ Borland Developers Group - Delphi mailing list
>> Post: delphi at delphi.org.nz
>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>> Unsubscribe: send an email to delphi-request at delphi.org.nz with
>> Subject: unsubscribe
>>
>> No virus found in this incoming message.
>> Checked by AVG - http://www.avg.com
>> Version: 8.0.138 / Virus Database: 270.6.5/1619 - Release Date:
>> 18/08/2008 5:39 p.m.
>>
>> _______________________________________________
>> NZ Borland Developers Group - Delphi mailing list
>> Post: delphi at delphi.org.nz
>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>> Unsubscribe: send an email to delphi-request at delphi.org.nz with
>> Subject: unsubscribe
>>
>>
>>
>>
>
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject:
> unsubscribe
>
>
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject: unsubscribe
>
>
More information about the Delphi
mailing list