PC SOFT

WINDEVWEBDEV AND WINDEV MOBILE
ONLINE HELP

Home | Sign in | English UK

New WINDEV, WEBDEV, WINDEV Mobile 25 feature!
  • Use conditions
  • Automatic reindexing
  • "Zero-downtime" reindexing
  • Calculating statistics
  • Directory of temporary files
  • Managing non-Latin character sets
  • Access rights to the data file
  • Special case: Files corrupted after a computer reboot or a fatal error
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Others
Stored procedures
Rebuilds the file index (".NDX" file). You also have the ability to reindex full-text indexes (".FTX" extension). A data file can be reindexed even when it is accessed by applications. See remarks for more details.
Reminder: The reindex operation reorganizes the indexes. After the reindex operation, the access to indexes is optimized. Reindexing a data file can become necessary further to the loss or modification of the index file. <Source>.CheckIndex is used to regularly check the status of the index file.
Versions 17 and later
iPhone/iPad This function is now available for iPhone/iPad applications.
New in version 17
iPhone/iPad This function is now available for iPhone/iPad applications.
iPhone/iPad This function is now available for iPhone/iPad applications.
Versions 18 and later
Universal Windows 10 App This function is now available in Windows Store apps mode.
New in version 18
Universal Windows 10 App This function is now available in Windows Store apps mode.
Universal Windows 10 App This function is now available in Windows Store apps mode.
Remark: From version 19, HFSQL is the new name of HyperFileSQL.
Versions 19 and later
Android This function is now available for the Android applications that use data files in HFSQL format.
Android Widget This function is now available in Android Widget mode.
New in version 19
Android This function is now available for the Android applications that use data files in HFSQL format.
Android Widget This function is now available in Android Widget mode.
Android This function is now available for the Android applications that use data files in HFSQL format.
Android Widget This function is now available in Android Widget mode.
Versions 21 and later
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
New in version 21
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
Example
IF AFile.Index(hNdxNormal) = True THEN
TABLE_MyTable.Display(taStart)
END
Syntax
<Result> = <Source>.Index([<Mode> [, <Progress Bar> [, <Density rate>]]])
<Result>: Boolean
  • True if the reindex operation was successfully performed,
  • False otherwise. HError returns more details about the problem.
<Source>: Type corresponding to the specified source
Name of data file used.
<Mode>: Optional Integer constant (or combination of constants)
Configure the reindex operation:
hChangeCharsetReindexing with change of character set.
The new character set defined by ChangeCharset will be taken into account during the reindexing. The sorts, the searches, ... on string keys (strings, characters, date and time) will be performed according to this character set.
hFTXReindexing full-text indexes.
Versions 20 and later
hMmoCompact
New in version 20
hMmoCompact
hMmoCompact
Compressing and defragmenting "Mmo" files.
Caution: This constant cannot be combined with the hNdxCompact, hFTX, hNdxMinimal, hNdxSilent, hNdxNormal or hNdxDelete constants.
hNdxCompactReindexing with compression (keeps the active records only. All the other records are permanently deleted).
hNdxMinimalReindexing while taking the corrupted keys into account only. This parameter is ignored if the hNdxDelete or hNdxCompact constant is enabled.
hNdxSilentReindexing without display
hNdxNormal
(default value)
Standard reindexing (with statistics and without compression)
The statistics are used to optimize the queries and the filters (see the Notes)
hNdxNoStatReindexing without statistical calculation. This constant increases the available space by reducing the size of index files.
Caution: The statistics are very important to get correct execution times when using queries, filters with condition and views with condition.
hNdxDeleteReindexing while deleting damaged records
Versions 15 and later
hBackgroundTask
New in version 15
hBackgroundTask
hBackgroundTask
HFSQL Client/Server Reindexing performed in background task. The applications are not locked during the reindex operation.
This feature is available in Client/Server mode only.
hCheckMemoStandard reindexing with memo check and correction if necessary (used to retrieve the damaged memos).
<Progress Bar>: Optional control or window name or optional integer
  • Name of window where the progress bar will be displayed,
  • Name of the Progress Bar control that displays the reindexing progress,
  • Identifier (Handle) of window that displays the progress bar.
<Density rate>: Integer included between 1 and 100
Density rate of indexes. This rate is set to 60 by default.
Remarks

Use conditions

  • <Source>.Index is used to reindex an xBase file.
  • Versions 21 and later
    <Source>.Index is used to reindex files in a cluster. In this case:
    • The reindex operation is performed on the node to which the user is connected.
    • Only a zero-downtime reindexing is available (hBackgroundTask constant).
    New in version 21
    <Source>.Index is used to reindex files in a cluster. In this case:
    • The reindex operation is performed on the node to which the user is connected.
    • Only a zero-downtime reindexing is available (hBackgroundTask constant).
    <Source>.Index is used to reindex files in a cluster. In this case:
    • The reindex operation is performed on the node to which the user is connected.
    • Only a zero-downtime reindexing is available (hBackgroundTask constant).
iPhone/iPadUniversal Windows 10 AppWindows MobileHFSQLHFSQL Client/Server

Automatic reindexing

Reindexing a data file can become necessary further to the loss or alteration of index file. An automatic reindex operation can be implemented for the data files.
To implement an automatic reindex operation, you must:
  • configure the value of the H.AutoIndexingLimit variable.
    Indeed, if the data file contains less than H.AutoIndexingLimit records, the reindex operation is automatically performed if an index error occurs.
    The H.AutoIndexingLimit variable is set to 10000 by default. The automatic reindex operation is disabled if this variable is set to 0.
  • configure the value of the H.VisibleAutoIndexing variable.
    If this value is set to True (default value), a window is automatically displayed as long as the automatic reindex operation is not completed. This window contains a progress bar used to follow the progress of the current reindexing. This window can be customized. See Assisted management of HFSQL errors for more details.
    During the reindex operation, the different applications that use the file data (read or write records) will be temporarily stopped and/or locked until the end of the reindex operation.
    Versions 15 and later
    HFSQL Client/Server If the hBackgroundTask constant is used, the reindex operation is performed in background task and the applications that use the data file are not stopped.
    New in version 15
    HFSQL Client/Server If the hBackgroundTask constant is used, the reindex operation is performed in background task and the applications that use the data file are not stopped.
    HFSQL Client/Server If the hBackgroundTask constant is used, the reindex operation is performed in background task and the applications that use the data file are not stopped.
If an error occurs during the automatic reindex operation (lock error on the data file or on the record for example), the automatic reindex operation is stopped and a fatal error (corrupted index) is displayed. This operating mode is similar to the one without automatic reindexing.
Remarks:
  • During the automatic reindexing, the reindex operation is performed in normal mode (hNdxNormal constant).
  • No automatic reindexing is available for data files in Hyper File 5.5 format.
  • If an automatic reindexing is performed, the applications that use the data files currently reindexed are temporarily locked. A message is displayed, indicating that the file is currently maintained.
  • At the end of the reindex operation, the current HyperFileSQL context is automatically restored (except if a reindex operation with memo check was performed).
AndroidAndroid Widget iPhone/iPadUniversal Windows 10 AppWindows MobileHFSQLHFSQL Client/Server

"Zero-downtime" reindexing

A data file can be reindexed even when it is accessed by applications.
During the reindex operation, the different applications that use the file data (reading or writing records) will be temporarily stopped/locked until the end of the reindex operation.

Calculating statistics

The statistical calculations are used to optimized the queries and the filters on the data file. The statistical calculations can also be performed by <Source>.StatCalculate.
Remark: In order for the statistical calculation to be efficient, this calculation must be performed on all the data files (for a multi-file query for example).

Directory of temporary files

Temporary files can be created during the reindex operation. By default, these files are created in the Windows temporary directory or in the current directory if there is not enough space.
The H.TemporaryDirectory variable allows you to configure the directory used to save these temporary files. This variable is recommended when reindexing huge data files.
Versions 17 and later
HFSQL Client/Server The directory used to store the temporary files on the server can be defined:
New in version 17
HFSQL Client/Server The directory used to store the temporary files on the server can be defined:
HFSQL Client/Server The directory used to store the temporary files on the server can be defined:

Managing non-Latin character sets

To modify the character set used for the searches, the sorts:
  1. Specify the character set to use with ChangeCharset.
  2. Reindex the data file with <Source>.Index. Use the hChangeCharset constant to use the character set specified by ChangeCharset.
See Managing specific character sets in the data files for more details.

Access rights to the data file

The reindex operation provokes the re-creation of the data file on disk. In an allocation system managing the rights at file level (NTFS...), the data file after the reindex operation will have the rights of the directory to which it belongs.
Before the reindex operation, if the data file had specific rights different from the rights of the folder, they must be redefined in Windows after the reindex operation.

Special case: Files corrupted after a computer reboot or a fatal error

The data files may be corrupted when the computer is unexpectedly rebooted. In this case, the data files contain invalid data (unreadable characters for example). To fix this problem:
  1. Perform a reindexing with deletion.
  2. Free the records in transaction with <Source>.TransactionFree.
  3. Delete the incorrect records with WDMAP.
Component : wd250hf.dll
Minimum version required
  • Version 25
This page is also available for…
Comments
Click [Add] to post a comment