Release 10.1A: OpenEdge Development:
Programming Interfaces

> ## Avoiding implied field list entries

> Under certain conditions, Progress adds fields to a specified field list when they are required by the client to complete the record selection. The most common case is when you specify a join condition with the `OF` option and you do not include the join field in the field list:

>     FOR EACH customer FIELDS (name),
>         EACH invoice FIELDS (invoice-num amount) OF customer:
>         DISPLAY customer.name customer.cust-num
>                 invoice.invoice-num invoice.amount.

> In this case, Progress adds customer.cust–num to the list because the client requires it to complete the join between the customer and invoice tables.

> However, never rely on implied entries in a field list to provide the fields you need. If you reference an unfetched field, Progress raises the `ERROR` condition at runtime. Future versions of Progress might change the criteria used to distribute record selection between the client and server. Thus in the previous example, if the server does not return customer.cust–num to the client to complete the join, the `DISPLAY` statement executes with `ERROR`. This might happen, for example, if the DataServer you use or a future version of Progress actually completes the specified join on the server.

> Therefore, always specify all the fields you plan to reference in your field lists. There is no extra cost for specifying a field that Progress can also add implicitly.

Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095