It is important to note that the indexing of a field is performed in a different process from the process that actually called it. In Client/Server mode, that process is executed on the server machine. When indexing, the indexing process loads each record in order to index it. Records are loaded in the order they were stored in the data file.
Because the indexing is performed in a separate process, both the current selection and the current record remain the same in the process that triggered the indexing.
The Index Builder process can be executed in two cases:
1. When you select the property "Indexed" for the field in the Field Properties dialog.
2. When the command SET INDEX is used to index a non-indexed field. No record is loaded if you use that command for a field that is already indexed or to remove the index for a field.
As a consequence, before you start using the SET INDEX command to index a field, you need to make sure that the current record of that table is not locked. If the Index Builder process encounters a record that is locked, it will halt.