Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
-
ssteeltr
- Posts: 2
- Joined: Tue 25 Aug 2009 11:21
Post
by ssteeltr » Tue 25 Aug 2009 11:30
When I try to inser code is running
Code: Select all
STM.Clear;
ppReport1.Template.SaveToStream(stm);
Q.Close;
Q.SQL.Clear;
q.SQL.Add('insert into REPORTS (REPORTNAME,TEMP) VALUES (:R, :T) ');
Q.Params[0].AsString:=Edit1.Text;
Q.Params[1].LoadFromStream(stm,ftBlob);
q.Prepare;
// ShowMessage(IntToStr(STM.Size));
q.Execute;
but when I try to update blob filed dont update and data in field show
Code: Select all
STM.Clear;
ppReport1.Template.SaveToStream(stm);
Q.Close;
Q.SQL.Clear;
q.SQL.Add('Update REPORTS Set TEMP=:t where REPORTNAME=:r ');
Q.Params[0].LoadFromStream(stm,ftBlob);
Q.Params[1].AsString:=Edit1.Text;
q.Prepare;
q.Execute;
-
ssteeltr
- Posts: 2
- Joined: Tue 25 Aug 2009 11:21
Post
by ssteeltr » Tue 25 Aug 2009 14:32
Code: Select all
STM.Clear;
//qr->Params->CreateParam(ftOraBlob,"SomeBinary",ptInput)->LoadFromStream(Mem, ftOraBlob);"
ppReport1.Template.SaveToStream(stm);
Q.Close;
Q.SQL.Clear;
q.SQL.Add('Update REPORTS Set TEMP=:t where REPORTNAME=:r ');
//Q.Params.CreateParam(ftOraBlob,'t',ptInput).LoadFromStream(STM,ftOraBlob);
Q.Params[0].ParamType:=ptInput;
q.params[0].DataType:=ftBlob;
q.Params[0].LoadFromStream(STM,ftBlob);
Q.Params[1].AsString:=Edit1.Text;
q.Prepare;
q.Execute;
-
Plash
- Devart Team
- Posts: 2844
- Joined: Wed 10 May 2006 07:09
Post
by Plash » Wed 26 Aug 2009 09:41
To work with Oracle BLOB you should set DataType of the parameter to ftOraBlob:
// q.params[0].DataType:=ftBlob; // remove because DataType is overriden by LoadFromStream
q.Params[0].LoadFromStream(STM, ftOraBlob);
-
eduardosic
- Posts: 387
- Joined: Fri 18 Nov 2005 00:26
- Location: Brazil
Post
by eduardosic » Thu 27 Aug 2009 23:42
ssteeltr wrote:When I try to inser code is running
Code: Select all
STM.Clear;
ppReport1.Template.SaveToStream(stm);
Q.Close;
Q.SQL.Clear;
q.SQL.Add('insert into REPORTS (REPORTNAME,TEMP) VALUES (:R, :T) ');
Q.Params[0].AsString:=Edit1.Text;
Q.Params[1].LoadFromStream(stm,ftBlob);
q.Prepare;
// ShowMessage(IntToStr(STM.Size));
q.Execute;
remember to set Stream position to 0
Code: Select all
STM.Clear;
ppReport1.Template.SaveToStream(stm);
stm.Position := 0;
Q.Close;
Q.SQL.Clear;
q.SQL.Add( 'insert into REPORTS (REPORTNAME,TEMP) VALUES (:R, :T) ');
Q.Params[0].AsString:=Edit1.Text;
Q.Params[1].LoadFromStream(stm,ftBlob);
q.Prepare;
// ShowMessage(IntToStr(STM.Size));
q.Execute;