Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 3 of 3 total
Thread Funny problem I tracked down ... with Delphi not DBISAM, but still maybe of interest
Wed, Mar 30 2011 5:56 AMPermanent Link

Adam Brett

Orixa Systems

Over the lasts couple of months I have been transferring DBISAM apps to 4.30 from 4.2? (27 I think!)

I had delayed doing this because of BLOB differences which meant it was an "all in one" kind of change, for instance repairs done on a table by an app compiled with v 4.28 components might corrupt at 4.30 table ... so I wanted to ensure that I destroyed all 4.28 apps, utils etc. prior to any updates.

I did the updates fine & my clients were happy.

Then there was the strangest problem: Some users reporting an error with "blob fields corrupt" when using some of the apps.

.... it turned out _somehow_ my version of Delphi was using 4.30 for the C-S components and v 4.28 for the Local sections of the DB engine!

When my app accessed the DB via C-S everything was fine, but when it switched to local access (which is does in certain situations) the error arose.

Obviously this is my dumb error ... there was an old v 4.25 DIBSAM directory on my compile-path ... but as all my testing was on the C-S segments of the code (which is what is used 98% of the time) I hadn't picked it up.

I don't know whether there is any way to guard against this, i.e. a protective coding pattern / method?

It would be great to know of one, as it was a really spooky bug ... very hard to track down (I assumed the error was in my own code, or even that the db tables were somehow damaged for quite a while).

Adam
Wed, Mar 30 2011 11:22 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Adam,

<< ... it turned out _somehow_ my version of Delphi was using 4.30 for the
C-S components and v 4.28 for the Local sections of the DB engine! >>

Are you sure that the issue wasn't the DBISAM Database Server using 4.30,
and the other client-side components all using 4.28 ?  This type of
configuration would work okay with remote sessions, but start having issues
with direct local sessions.

--
Tim Young
Elevate Software
www.elevatesoft.com
Thu, Mar 31 2011 10:26 AMPermanent Link

Adam Brett

Orixa Systems

<<Are you sure that the issue wasn't the DBISAM Database Server using 4.30,
and the other client-side components all using 4.28 ?  This type of
configuration would work okay with remote sessions, but start having issues
with direct local sessions.>>

HUM: Maybe Tim ... All I could see was that with a connection to DBSRVR the Applications worked fine, but with a local connection they barfed when they tried to return a BLOB / MEMO.

Anyway, no damage done & it all works fine now.
Image