Kbase 19276: How INDEXED-REPOSITION Works For Oracle DataServer
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/6/2008 |
|
Status: Verified
GOAL:
Considerations when using indexed-reposition with Oracle DataServer
GOAL:
Limitations of indexed-reposition against DataServers?
FACT(s) (Environment):
All Supported Operating Systems
Progress 8.x
Progress 9.x
OpenEdge 10.x
Oracle DataServer
FIX:
Starting with these versions, Oracle DataServer supports indexed-reposition on queries. The option allows you to scroll through a query result set. This solution discusses some considerations in the use of the indexed-reposition option.
Considerations about the implementation:
- The DataServer generates a new result set when a reposition is requested to the query. This means you cannot scroll back the query to previous rows because the query is usually a new one when a new reposition request is issued.
- You might want to scroll back the query in the following situation however:
The DataServer query first looks in the cache. If the record to reposition is found in the cache, the DataServer does not issue a new query and you can scroll it back. But this is not reliable because you cannot predict when a particular reposition request finds its target in the cache.
Consider a customer table with 10000 rows and a query ordered by cust-num:
If you do a GET PREVIOUS to cust-num 5 and then REPOSITION to 5000, you cannot get previous (customer with cust-num < 5000).
If you reposition to cust-num 7, DataServer most likely finds it in the cache. Then you might be able to get previous all the way back to cust-num 1.
In the first example (repos to 5000), you can issue another reposition to cust-num 5 and then get next from the start of the new query.