Goldstar Software Utilities: KeyCheck
Pervasive Database File Key Checker & Reporting Tool
This is the 32-Bit version of the older, but still useful DOS Utility (available for free HERE) that scans existing Btrieve or Pervasive.SQL database files looking for any index corruption.
Note to registered users of KeyCheck: If you do not have the latest version (see below), please send an Email with your COMPLETE version number (x.yy.zzzz) and a subject line of "KeyCheck Update" and we will send you the latest release.
KeyCheck starts by reading every record from the Btrieve file in physical order. It then proceeds to read every record via each defined key path. If no problems are found, the program exits with a return code of 0 -- success! If an error is found while working on the file, the error is displayed to the screen and returned as an exit code. (The exit code allows the creation of smart batch files to run KeyCheck.)
Running KeyCheck with no parameters provides the syntax and documentation:
KeyCheck Version 3.37: 04/21 (C)2016 Goldstar Software Inc.
Usage: KEYCHECK Filename [/Option] [/Option] ...
This command scans the Btrieve file for corrupted keys.
*Use /B to identify Bad or missing (Status 2) records on a key path.
*Use /C to Check for unique value mismatches while scanning.
Use /D to enable Debug mode.
Use /E to Exit on the first error encountered.
Use /K# to specify a single Key to traverse (or -1).
Use /L to log results to a file (Default=KEYCHECK.LOG).
Use /O= to provide a database file owner name.
*Use /Q to enable QuickRead (4-Byte Record Reads).
Use /R to traverse records in Reverse order.
Use /S to disable Status reporting.
*Use /T for multi-Threaded processing.
*Use /U to export data to a UNF File.
Use /W to output statistics in CGI (Web) format.
A * above indicates that it works in Registered Mode ONLY.
KeyCheck can be run in forward order (the default) or in backward order (/R switch). This allows you to validate both the forward index pointer chains and the reverse index pointer chains for the most accurate results. KeyCheck also has options to traverse a single key only withthe /K switch, for spot-checking of a single index.
The Win32 version of KeyCheck has a special "QuickRead" option that reads only the first 4 bytes of each record, providing a faster way of verifying index structures only. Note that this will NOT verify all pages, especially variable-length pages used by variable and compressed records.
KeyCheck also has a"web" option to send output in formatted HTML -- making KeyCheck a CGI application capable of running checks across the internet (from a web server)!
If you want KeyCheck to attempt to identify the Key Value of corrupted records, use the /B switch. This can be an invaluable aid if the data page is damaged (or lost), yet the index information is still available. In this case, KeyCheck will attempt to re-read the record's index value and display it to the screen. You can then restore this record from backup!
Version 2.6 adds the ability to compare the Unique Values shown in the STAT report against the actual data in the file. This can identify strange SQL optimization issues that require a database rebuild to correct.
KeyCheck can be purchased as a single-user license or as a LAN site license. We can also provide licensing information for developers if you are interested in including KeyCheck within your application for use for monitoring data files.Contact us for details!