Reread Fields (-rereadfields)

Use Reread Fields (-rereadfields) to avoid inadvertent runtime errors that result from using field lists in ABL code. With -rereadfields, when an ABL statement tries to reference a field that is not specified in the field list, the AVM re-fetches all the fields of the record.

Operating system and syntax UNIX / Windows -rereadfields
Use with Maximum value Minimum value Single-user default Multi-user default
Client Session

Field lists restrict the fields returned from a record query. They allow you to retrieve only specified fields rather than all the fields of a record. Field lists are implemented with the FIELDS or EXCEPT options in FOR, DO PRESELECT, REPEAT PRESELECT, and DEFINE QUERY statements. They can improve performance over a network by enabling more records to fit into a single network message.

The use of field lists can cause unexpected errors, particularly when you update existing code. It is possible, for example, that you may have eliminated a field that will be required by a new or revised subroutine or trigger. The result will be a runtime error that may be difficult to debug.

Note the difference between -fldisable and -rereadfields. The Field List Disable (-fldisable) option causes the AVM to ignore all field lists and to fetch the entire record for every query. The Reread Fields (-rereadfields) option causes the AVM to fetch the record with the specified fields, but then re-fetch the entire record if an ABL statement tries to reference a field that is not there. Also note that when the re-fetch happens, any FIND trigger is not run again.

Note: You should not use -rereadfields during actual application development since you will not see the error messages that could help you determine what fields are required in a field list.

For more information on -fldisable see Field List Disable (-fldisable).

For more information on field lists, see the Record phrase entry in ABL Reference.