Icon View Incident Report

Serious Serious
Reported By: Gary Stafford
Reported On: 3/15/2004
For: Version 4.04 Build 1
# 1616 Modifying a BLOB Field Using a TDBISAMBlobStream Component Does Not Work Properly

Please see the code below. When I run again the I variable reads back as I[1]=3604500 I[2]=3609000, this is wrong. It should be I[1]=3604520 I[2]=3609020. The Blob2.write is not working However, using datasource.dataset.Insert to create the blob in the first place worked ok.

Blob2:=Nil;
DataSource1.DataSet.Open; {ok}
DataSource1.DataSet.Edit; {ok}
Blob2:=DataSource1.DataSet.CreateBlobStream(
      DataSource1.DataSet.FieldByName('tSharePrices'),bmReadWrite);  {Ok}
Blob2.Seek(256,0);  {Ok}
Blob2.Read(I,8); { I[1]=3604500 I[2]=3609000This is correct }
I[1]:=I[1]+20;
I[2]:=I[2]+20; { change the value of I  Ok }
Blob2.Position:=Blob2.Position-8; { move back to position in blob Ok 
}
Blob2.Write(I,8); { write back the value Ok }
Blob2.Free; {Ok }
DataSource1.DataSet.Post; { Ok }
DataSource1.DataSet.Close; {Ok}



Comments Comments
The BLOB was not getting flag as dirty when an in-place modification was executed.


Resolution Resolution
Fixed Problem on 3/19/2004 in version 4.05 build 1
Image