ORABLOB Failure
Posted: Fri 02 Dec 2011 16:46
Hi,
I Load a stream into a ORACLE BLOB Field.
Loading into database seems to be good (no errors).
When I try to read the BLOB FIELD, I get Epic Fail.
Here my code :
PS: I don't want to use :
ODAC Version : 6.70.0.43 for Delphi 2009
I Load a stream into a ORACLE BLOB Field.
Loading into database seems to be good (no errors).
When I try to read the BLOB FIELD, I get Epic Fail.
Here my code :
Code: Select all
CommandText := 'UPDATE MYTABLE SET MyFieldName = :pMyFieldName WHERE...';
if (myObject nil) then begin
wStream := TMemoryStream.Create;
try
myObject.SaveToStream(TStream(wStream));
wStream.Seek(0,SoFromBeginning);
{$IFDEF SQLSERVER}
Params.ParamByName('pMyFieldName').LoadFromStream(wStream, ftBlob);
{$ENDIF}
{$IFDEF ORACLE}
Params.ParamByName('pMyFieldName').ParamType := ptInput;
Params.ParamByName('pMyFieldName').DataType := ftOraBlob;
Params.ParamByName('pMyFieldName').LoadFromStream(wStream, ftOraBlob);
{$ENDIF}
wStream.Seek(0, SoFromBeginning);
finally
wStream.Free;
end;
end else begin
Params.ParamByName('pMyFieldName').DataType := ftBlob;
Params.ParamByName('pMyFieldName').Value := NULL;
end;
Execute;
Code: Select all
wDataSet.CommandText := 'SELECT MyFieldName FROM MYTABLE WHERE...';
wDataset.Open;
wDataset.Edit;
TBlobField(wDataset.FieldByName('STREAM')).LoadFromStream(wstream);
wDataset.Post;
wDataset.ApplyUpdates(-1);
wDataset.Close;