Memo Field
Kenneth Brody
kenbrody at bestweb.net
Thu Jul 22 19:51:12 PDT 2004
Nancy Palmquist wrote:
[...]
> I would like to know if there is an explanation of what kinds of
> problems the blobfix is intended to repair.
>
> Is there such an explanation?
Attached.
--
+-------------------------+--------------------+-----------------------------+
| Kenneth J. Brody | www.hvcomputer.com | |
| kenbrody at spamcop.net | www.fptech.com | #include <std_disclaimer.h> |
+-------------------------+--------------------+-----------------------------+
-------------- next part --------------
BlobFix
=======
The basic method is as follows:
First, it checks that the file actually has at least one blob/memo
field. If not, there is nothing to do.
Second, it creates a new blob file ("__blob__.tmp") which will hold
the recovered data.
Next, it goes through every record, in record number order, and for
each blob/memo field, it reads it into memory using a special build
of the blob I/O routines. (These routines verify the integrity of
everything that they read, and will attempt to read as much as
possible from the blob. Illegal pointers and the like will be
caught and will not cause a crash.)
Each object that is read gets written to the new blob file, and the
pointers in the record are updated appropriately.
Once done, the old blob file is deleted and the temp file is moved
into place.
Checked-build blob I/O routines
===============================
At each step of the way, the block type is verified upon being read.
All offsets and lengths are checked to make sure that they contain sane
values. (ie: the resulting object resides within the block of data.)
Any errors will be logged, and the object truncated to whatever was able
to be read before the corruption made it impossible to continue.
Note
====
In order for the errors to be logged, you must set PFBLOBFIXLOG=filename
in the environment/config file. All log entries will be appended to this
file.
More information about the Filepro-list
mailing list