Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 7 of 7 total
Thread Two records sharing the same blob data (1/1)
Thu, May 25 2006 9:38 AMPermanent Link

Hi Tim,

Here is a cut down example that demonstrates the problem of two records
sharing the same blob data.

It occurs both with local and remote data access.

To provoke the problem...

- view master record 1, which has a detail record attached

- click the Edit button on the DBNavigator to put the master table into
edit mode

- make a change to the detail record

- click the Post button on the DBNavigator

Posting the (unchanged) master record causes a post of the (changed)
detail
record.  The AfterPost of the Detail table makes a nested call to the Post
method of the Master table.  

There are now two identical records.  The record with ID 1 has been
cloned.  Both copies appear to point to the same blob data.  If you delete
one of the records, the other record get corrupted giving an error # 8963   
BLOB block buffers corrupt in table 'Master'.

A repair of the table results in an empty BLOB field in the remaining copy
of the record with ID 1.


--Bill Sparrow--





Attachments: DBISAM Siamese Bug.zip
Thu, May 25 2006 11:10 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Bill


Sorry to tell you but in D6 I can't get it to do what you're seeing

Roy Lambert
Fri, May 26 2006 10:08 AMPermanent Link

Ah.  I'm using D5 (with 4.22 Build 6).  Maybe there is a bug in the VCL?  
Even so, it manifests itself as a corruption of the data, that occurs both
on the file share and client server methods of data access.

--Bill Sparrow--
Fri, May 26 2006 1:02 PMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Bill


Also in D6 I'm using 4.22 b5

Roy Lambert
Sat, Jun 24 2006 8:13 AMPermanent Link

Graham Wood
Hi Bill,

Just so you know you're not going crazy, I've had this issue as well.  

If I have two DBRTFs, showing data from the same blob field and one of them is edited,
corruption occurs 3 times out of 5.

I tried everything short of voodoo.  Even flushbuffers etc.

This will sound bizarre and I'm sure that Tim will tell you it'll make no difference, but...
I cured it when I made all blob fields, wait for it... memo fields!!  The problem went
away and has never returned.

No other code was changed, just did a search replace in my code and changed all blob
fields to memo fields.  Memo fields still show blob data perfectly and everyone's happy.

HTH.
Sat, Jun 24 2006 9:20 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Graham


I always use memo fields for all memo/blob/graphic data including tables. But that just sparked another thought, back in my Paradox days I found that the dreaded "blob has been modified" was a lot less likely to happen when all of the memo fields were at the end of the table. Why? I have no idea.


Roy Lambert
Tue, Jun 27 2006 5:12 AMPermanent Link

Hi Graham,

I was using memo fields.  Also there was nothing random about the problem.
Totally repeatable.  I've coded round it to make sure the user can't cause
the chain of events that causes it.  Also Tim has said he will put in a
check for it.

--Bill Sparrow--
Image