Progress
Programming
Handbook
Field List Handling in Degenerate Cases
When you specify field lists, Progress is very flexible where it cannot make use of them. Progress either returns complete records automatically or allows you to bypass field list processing completely for the following cases:
- Progress server versions — Earlier database servers interpret field list requests as requests for complete records. Progress sends queries in such a way that earlier servers do not need to know that the field list requests are included.
NOTE: You can avoid SHARE–LOCK fetches with the help of the CURRENT–CHANGED function. For more information, see Locks."- DataServers that do not support SHARE–LOCK — If you execute a SHARE–LOCK fetch from a DataServer that does not support SHARE–LOCK, Progress ignores the field list and retrieves the complete record. In some circumstances, Progress must replace the fetched record with a new version. Because the SHARE–LOCK is meaningless, the new version can be different from the previous one, and Progress requires the complete record to ensure that the user receives the correct data.
- Multiple queries returning the same record — If you specify two queries that return two different field lists for the same record, Progress cannot always consolidate the two lists. In that case, Progress must reread the complete record. Such occurrences are rare, but they can impose a minor performance penalty with little impact on overall performance.
- Deployment problems — While programmers must ensure that their field lists are complete, run-time errors can still occur during application deployment. This is especially likely when a new database (schema) trigger is defined that references an unfetched field. To work around this type of problem, Progress provides the Field List Disable (–fldisable) client session parameter. This is a run-time parameter that causes Progress to ignore field lists in the r-code and fetch complete records. This might degrade performance, but allows the application to run until a fix can be made.
Thus, while using field lists can lead to difficulties, Progress provides a way around most of them. And when used optimally, the performance gains can make field lists well worth the extra attention they might require.
Copyright © 2004 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |