>However, if you've particular ones that you think are inappropriately
>fatal, please post 'em here and we can see about fixing them
>as appropriate.

DmFindRecordByID() is definitely on my list. I use the appinfo block of
a DB to store record sort information (based on record ID), then use
DmFindRecordByID() to sort the records at program start. I thought this
would be safe as my program simply ignores entries where
DmFindRecordByID() returned 0.
Some users mysteriously complained about Fatal Errors with invalid
record IDs. Because the errors were fatal (reset), my program would not
even start.
I only recently learned that older OS versions pad the appinfo block to
512 bytes with garbage and DmFindRecordByID will pop up a fatal error
message if the high byte of an ID is not zero.
So in my case, I stumbled over an OS bug (extending the size of the
appinfo block), not a bug in my program. I'm now working around this by
duplicating part of the code of DmFindRecordByID() in my app.
BTW, I could not have found this problem in a trillion gremlin events as
it apparently only occurs with certain hotsync/OS combinations.

ALL the read/check functions (DmGetRecord() with deleted records also a
good candidate) should return error codes and not popup any message
boxes at all.

Andreas

Reply via email to