Print Thread
Problem for Blob in Stream
#6153 03/09/04 06:41 PM
Joined: Feb 2004
Posts: 4
A
Member
OP Offline
Member
A
Joined: Feb 2004
Posts: 4
I have to convert an image before sending him(it) to the base!

I do not manage to cross(spend) her(it) after the convertion.

Code
Procedure Tform1.ButtonClick(Sender: TObject);
Var LOB : TLobLocator;
    JPG : TJPEGImage;
    MS  : TMemoryStream;
Begin
JPG:=TJPEGImage.Create;

JPG.CompressionQuality:=100;
JPG.Grayscale:=False;
JPG.Assign(DBImage1.Picture.Bitmap;


MS :=TMemoryStream.Create;
JPG.SaveToStream(MS);
MS.Position:=0;

With OracleQuery1 Do
Begin
  SQl.Clear;
  SQL.Add('Insert into imageB values(1, empty_blob()) returning image into :image');
  LOB:=TLobLocator.Create(OracleSessionA, otBlob);
  DeclareVariable('image', otBlob);
  //SetComplexVariable('image', LOB);
  SetComplexVariable('image, MS);
  Execute;
  //LOB.LoadFromFile('c:\test.jpg');
  //LOB.Free;
  OracleSessionA.commit;
End;
End;
A.Morel


A.Morel
Re: Problem for Blob in Stream
#6154 03/09/04 08:52 PM
Joined: Aug 1999
Posts: 22,206
Member
Offline
Member
Joined: Aug 1999
Posts: 22,206
I think this should do the trick:
Code
Procedure Tform1.ButtonClick(Sender: TObject);
Var LOB : TLobLocator;
    JPG : TJPEGImage;
Begin
  JPG:=TJPEGImage.Create;
  JPG.CompressionQuality:=100;
  JPG.Grayscale:=False;
  JPG.Assign(DBImage1.Picture.Bitmap);
  With OracleQuery1 Do
  Begin
    Clear;
    SQL.Add('Insert into imageB values(1, empty_blob()) returning image into :image');
    LOB:=TLobLocator.Create(OracleSessionA, otBlob);
    DeclareVariable('image', otBlob);
    SetComplexVariable('image', LOB);
    Execute;
    JPG.SaveToStream(LOB);
    LOB.Free;
    OracleSessionA.commit;
  End;
End;
The memory stream is removed, and the JPG is now written directly to the database after an empty BLOB is inserted.


Marco Kalter
Allround Automations
Re: Problem for Blob in Stream
#6155 03/11/04 12:43 PM
Joined: Feb 2004
Posts: 4
A
Member
OP Offline
Member
A
Joined: Feb 2004
Posts: 4
When I execute, he(it) makes me following error:

Code
Ora - 00932 : Types of inconsistent data : Blob Expected; Number Obtained
I see not of or come the error, Thank you in advance.


A.Morel
Re: Problem for Blob in Stream
#6156 03/11/04 10:38 PM
Joined: Aug 1999
Posts: 22,206
Member
Offline
Member
Joined: Aug 1999
Posts: 22,206
Maybe you need to specify the column list for the insert statement? I can't see how the imageB table is defined.


Marco Kalter
Allround Automations

Moderated by  support 

Link Copied to Clipboard
Powered by UBB.threads™ PHP Forum Software 7.7.4
(Release build 20200307)
Responsive Width:

PHP: 7.1.33 Page Time: 0.128s Queries: 13 (0.075s) Memory: 2.5066 MB (Peak: 3.0393 MB) Data Comp: Off Server Time: 2024-04-28 22:14:55 UTC
Valid HTML 5 and Valid CSS