Cached Update bugs...Anyone else found them?

I have lost confidence with Borland's Delphi Cached Updates.  I have
discovered a really annoying bug which exists in Delphi 3.02 and the
BDE when using cached updates.  Briefly the cache does not seem to
always get cleared after successful calls to ApplyUpdates.  What I
tend to find is one record - usually the last Insert seems to remain
in the cache.  SQL Monitor shows the cached updates are all valid and
have been applied OK, and no Update SQL exception has been raised.
Then when adding a whole new set of updates the first update is of
course the last insert that was successfully processed but not
cleared.  BANG! unique key violation when the insert tries to insert
again.  Calling CommitUpdates as a measure to clear the rogue insert
doesn't always work, and re opening the Dataset doesn't either.

Also there are problems if you have a master/detail dataset
configuration using cached updates.  Do an insert on the master, then
modify this record, in the meantime do some operations on the detail
dataset.  Apply the Master cached updates so that the detail has a
parent record for its cached update records.  Then try to apply the
detail updates and ???? nothing in the Detail cache.  If an update
occurs on the master dataset then detail dataset cache gets cleared.
Now that is really clever Borland.  So how the hell do you get around
that one?  Apply the cache after every insert on the master?  Defeats
the point of caching.

Also those damn annoying Paradox .MB files that Delphi uses to store
to cache don't always get cleared up.  After a while you have manually
purge them.

The rogue insert not being cleared from the cache is is a serious
issue but as usual probably won't be addressed by Borland/Inprise.  I
have found 3 or 4 major bugs in Delphi but if you try and report them
it's like
"Have you got a support contract"
"No..."
"Well you can't report the bug then, fill out the online bug report"
"But I have done before and you do nothing about it..."
"Well maybe it's not a bug then...."
"But after reporting it on the Newsgroups other people have verified
it as a bug."
"Erm well sorry that's all Borland/Inprise can offer you."

Whatever happened to customer service, I am forced to ask myself, is
that shit or what?

Paul Scott
Oi Delphi Development team... you {*word*30}wits have forgotten to call
inherited in the WMCommand message handler of TCustomGrid since Delphi
1.  So how do you process child controls' notifications if in
descendent classes of TCustomGrid controlstyle includes
csAcceptControls?