Rebuilds open index files.
REINDEX updates all index files open in the selected work area.
Converts regular single index (.idx) files to compact .idx files.
Index files become outdated when you open a table without opening its corresponding index files and make changes to the index files' key fields. When index files become outdated, you can update them by reindexing.
Visual FoxPro recognizes each index file type: compound index (.cdx) files, structural .cdx files, and single index (.idx) files), and reindexes them accordingly. It updates all tags in .cdx files and updates structural .cdx files, which automatically open with the table.
To speed network traffic during a REINDEX operation, you can use SYS(3050) - Set Buffer Memory Size to set buffer memory to a size large enough to store the entire table. During the first pass, the table is paged locally, and later passes will not attempt to read paged data from the remote computer.
Any index files created with the UNIQUE keyword of the INDEX command or with SET UNIQUE ON retain their UNIQUE status when reindexed.
To REINDEX outdated index files, issue these commands:
USE TableName INDEX OutdatedIndexNames REINDEX
In the following example, ISEXCLUSIVE( ) verifies that the customer table was opened for exclusive use. The table is not reindexed since the one in the current work area was not opened for exclusive use.
cExclusive = SET('EXCLUSIVE') SET EXCLUSIVE OFF SET PATH TO (HOME(2) + 'Data\') OPEN DATA testdata && Opens the test databsase USE Customer && Not opened exclusively USE Employee IN 0 EXCLUSIVE && Opened exclusively in another work area IF ISEXCLUSIVE( ) REINDEX && Can only be done if table opened exclusively ELSE WAIT WINDOW 'The table has to be exclusively opened' ENDIF SET EXCLUSIVE &cExclusive