Re: Saving JPEG images to images field in SQL2000 with ADODataSet



The following code works nicely.

procedure TForm1.btnSaveSQLClick(Sender: TObject);
var
Stream: TADOBlobStream;
begin
ADOConnection1.Execute('delete from dbo.Categories where ' +
'(CategoryName = ''Test'')');
ADODataset1.active := true;
ADODataset1.Insert;
ADODataSet1CategoryName.AsString := 'Test';
ADODataSet1Description.asstring := lowercase(edit1.text);
Stream := TADOBlobStream.Create(ADODataSet1Picture, bmWrite);
if Image1.Picture.Graphic is TJPEGImage then
TJPEGImage(Image1.Picture.Graphic).SaveToStream(Stream)
else
Image1.Picture.Bitmap.SaveToStream(Stream);
Stream.Free;
ADODataset1.Post;
ADODataset1.active := false;
end;

procedure TForm1.btnLoadSQLClick(Sender: TObject);
var
Stream : TADOBlobStream;
fJPEGImage: TJPEGImage;
begin
ADODataset1.active := true;
if ADODataset1.Locate('CategoryName','Test',[]) then
begin
edit2.text := 'new_'+ADODataSet1Description.asstring;
Stream := TADOBlobStream.Create(ADODataSet1Picture, bmRead);
Stream.Position := 0;
if (pos('.jpg',ADODataSet1Description.asstring)>0) then
begin
fJPEGImage := TJPEGImage.create;
fJPEGImage.LoadFromStream(Stream);
Image1.Picture.Assign(fJPEGImage);
fJPEGImage.Free;
end
else
Image1.Picture.Bitmap.LoadFromStream(Stream);
Stream.Free;
end;
ADODataset1.active := false;
end;

Dennis Passmore



"If you cannot conceive the idea you
will never achieve the desired results"
.



Relevant Pages