I know I've personally been the one on a few occasions to recommend reverting to a backup ... now I'd like to ask for a recommendation from FileMaker gurus who may know how to dig into .fp5 files at the binary data level.
 
When I make backups, I always unzip the new backup on an isolated machine and run a "set to single-user"  followed by a "set to multi-user" just to make sure all the files open.  Unfortunately, that didn't catch the problem I located today in contact_.102.
 
We had accidentally created duplicate contact records for a particular mailing.  I obtained the found set of all contact records with the source code in question, and exported that to 'flag' the duplicates semi-automatically in Excel, with the intention of creating a new data set consisting only of one field (contact number) and records for the 2nd (duplicate) copies of the contact records.  >From there it's not too hard to hook that data up to ebase and get a found set of the contact records that need deletion.
 
I never quite got as far as finishing that process, though.  Logged in as the master-level user, I'd added a new number field to contact_.102 and attempted to populate the field with an arbitrary value (which would contrast with the value given the duplicate records as part of that whole fix-it process).  FileMaker was unable to replace for all records, however, indicating that "2 record(s) could not be modified because they were in use by other users or your password does not enable you to change them."
 
This shouldn't have been the case, though, since I'd shut down FileMaker Server and was working on a copy of our ebase on my own machine.
 
Next, in an attempt to locate those records, I did an 'omit' find with the arbitrary value I'd used to populate the new field -- that is, I tried to find the two records that FileMaker could not update with the arbitrary value.  At that point, FileMaker said that "This file is damaged.  Click Continue to continue using this file, or click Exit to exit FileMaker.  Consult the FileMaker manual for information on Recovery."
 
I've tracked the corruption down to somewhere in the February to March range (haven't tested down to the specific archived backup in which the corruption first appears yet), which is long enough ago that it'd be really great to find some other solution than reverting to a backup, even if it takes serious time and/or technical know-how.
 
Working exclusively on copies and leaving FileMaker Server off, I clicked "Continue" to continue using the file and was able to locate the 2 problem records (they're empty -- whether they always were or became that way as a result of clicking "Continue" , I don't know).
 
Several questions that I'd be grateful for feedback on:
 
1.  Any chance this file can be surgically corrected, assuming the problem is in fact only with two records?  I'm not talking about resurrecting the data in those two records, which is easy enough to locate, but rather correcting any corruption in the file.  Does anyone out there do this type of surgery?  Could this have just been a case of two records that had flags set as being locked/in use -- and could the flag simply be reset on those two records?
 
(if there's a bit set in each record for whether it's locked or not, and I've got two corrupt records, does that make this a two-bit problem requiring a two-bit solution?  Ha!)
 
2.  Similarly, does FileMaker provide any data integrity tools that could be used to reliably check on files and/or correct problems that crop up?  Seems like this is a relatively common occurrence on the list, and if FileMaker's not too robust, perhaps there'd be utilities out there to help.
 
3.  Failing that, it's pretty clear to me that doing a "set to single-user" and then re-setting to multi-user, to open all the ebase files, is an insufficient procedure to ensure data integrity.  It strikes me that one could add an extra field to all files, and create a script that repeats the steps I took to find my corruption (replacing a field with an arbitrary value in all records for each file, and then doing an "omit" find using that arbitrary value).  Does anyone have any experience implementing something like this?
 
4.  Any other suggestions?  One thought that occurred to me is attempting to delete all records that existed prior to the time of corruption from my most recent archive of ebase, and then reimport this data into the last uncorrupted version.
 
Any thoughts/feedback would be greatly appreciated.
 
Thanks,
 
Eric Johnson
Colorado Environmental Coalition
------------------ Reminder to each recipient: To change your list account preferences, go to http://email.sparklist.com/scripts/lyris.pl?enter=support and enter the email address you used to subscribe to the ebase support list:: [email protected] To unsubscribe send a blank email to [EMAIL PROTECTED] --------------------------------------------------------------------- ebase - Relationship Management for Nonprofits, http://www.ebase.org ---------------------------------------------------------------------

Reply via email to