Checks whether the data found in the index file (.NDX file) properly refers the data found in the data file (.FIC file). This function applies to the HFSQL data files (Classic or Client/Server) only.
The HFSQL Client/Server data file is automatically locked in write mode during the check.
Reminder: An index is corrupted when one of the referenced records is not the expected one. In this case, the data file must be re-indexed.
// Check the index
let IndexResult = HCheckIndex(Customer)
// Manage the result
Info("The index is correct")
Info("The file must be optimized.")
Info("HFSQL error" + HError() + " during the test")
<Result> = HCheckIndex([<Data file> [, <Key item>] [, <Progress Bar>]])
Can correspond to:
- 0 if the check is correct.
- 1 if the index is corrupted: a reindex operation is required (HIndex)
- 2 if an HFSQL error occurred: the data file cannot be accessed, etc.
- 3 if the function is not supported by this type of data file (xBase, AS400, etc.)
<Data file>: Optional character string
Name of the data file used. If this name is not specified, HCheckIndex will use the last data file used by the last HFSQL function (function starting with "H").
<Key item>: Optional character string
Name of the key item to check. If this parameter is not specified, all the keys of the data file are checked.
<Progress Bar>: Optional control name or window name
- Name of window where the progress bar will be displayed,
- Name of the Progress Bar control to use.
This parameter is ignored.
When the function detects a problem in the index file, the H.Comment
<Name of affected key> + TAB + <Record number causing problem> + CR +
<Name of affected key 2> + TAB + <Record number causing problem 2> ...
<Record number causing problem> is equal to -1 if no record was defined.
Remark: The H.Comment variable is not filled if the index file is entirely corrupted.